{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true,
    "ExecuteTime": {
     "end_time": "2023-05-05T12:43:44.630364Z",
     "start_time": "2023-05-05T12:43:44.523361400Z"
    }
   },
   "outputs": [],
   "source": [
    "import sys\n",
    "\n",
    "sys.path.append('..')\n",
    "import numpy as np\n",
    "from common.layers import MatMul, SoftmaxWithLoss"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "outputs": [],
   "source": [
    "class SimpleCBOW:\n",
    "    def __init__(self, vocab_size, hidden_size):\n",
    "        V, H = vocab_size, hidden_size\n",
    "\n",
    "        # 初始化权重\n",
    "        W_in = 0.01 * np.random.randn(V, H).astype('f')\n",
    "        W_out = 0.01 * np.random.randn(H, V).astype('f')\n",
    "\n",
    "        # 生成层\n",
    "        self.in_layer0 = MatMul(W_in)\n",
    "        self.in_layer1 = MatMul(W_in)\n",
    "        self.out_layer = MatMul(W_out)\n",
    "        self.loss_layer = SoftmaxWithLoss()\n",
    "\n",
    "        # 将所有的权重和梯度整理到列表中\n",
    "        layers = [self.in_layer0, self.in_layer1, self.out_layer]\n",
    "        self.params, self.grads = [], []\n",
    "        for layer in layers:\n",
    "            self.params += layer.params\n",
    "            self.grads += layer.grads\n",
    "\n",
    "        # 将单词的分布式表示设置为成员变量\n",
    "        self.word_vecs = W_in\n",
    "\n",
    "    def forward(self, contexts, target):\n",
    "        h0 = self.in_layer0.forward(contexts[:, 0])\n",
    "        h1 = self.in_layer1.forward(contexts[:, 1])\n",
    "        h = (h0 + h1) * 0.5\n",
    "        score = self.out_layer.forward(h)\n",
    "        loss = self.loss_layer.forward(score, target)\n",
    "        return loss\n",
    "\n",
    "    def backward(self, dout=1):\n",
    "        ds = self.loss_layer.backward(dout)\n",
    "        da = self.out_layer.backward(ds)\n",
    "        da *= 0.5\n",
    "        self.in_layer1.backward(da)\n",
    "        self.in_layer0.backward(da)\n",
    "        return None"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-05-05T13:14:39.648768200Z",
     "start_time": "2023-05-05T13:14:39.639771Z"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 学习的实现"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "outputs": [],
   "source": [
    "import sys\n",
    "\n",
    "sys.path.append('..')\n",
    "from common.trainer import Trainer\n",
    "from common.optimizer import Adam\n",
    "from common.util import preprocess, create_contexts_target, convert_one_hot"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-05-05T13:16:00.975455500Z",
     "start_time": "2023-05-05T13:16:00.969455600Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "outputs": [],
   "source": [
    "window_size = 1\n",
    "hidden_size = 5\n",
    "batch_size = 3\n",
    "max_epoch = 1000"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-05-05T13:16:03.282704200Z",
     "start_time": "2023-05-05T13:16:03.266705300Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "outputs": [],
   "source": [
    "text = 'You say goodbye and I say hello.'\n",
    "corpus, word_to_id, id_to_word = preprocess(text)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-05-05T13:16:09.771948900Z",
     "start_time": "2023-05-05T13:16:09.759948700Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "outputs": [],
   "source": [
    "vocab_size = len(word_to_id)\n",
    "contexts, target = create_contexts_target(corpus, window_size)\n",
    "target = convert_one_hot(target, vocab_size)\n",
    "contexts = convert_one_hot(contexts, vocab_size)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-05-05T13:34:15.119915100Z",
     "start_time": "2023-05-05T13:34:15.097914300Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "outputs": [],
   "source": [
    "model = SimpleCBOW(vocab_size, hidden_size)\n",
    "optimizer = Adam()\n",
    "trainer = Trainer(model, optimizer)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-05-05T13:34:25.074245400Z",
     "start_time": "2023-05-05T13:34:25.057245500Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "| epoch 1 |  iter 1 / 2 | time 0[s] | loss 1.95\n",
      "| epoch 2 |  iter 1 / 2 | time 0[s] | loss 1.95\n",
      "| epoch 3 |  iter 1 / 2 | time 0[s] | loss 1.95\n",
      "| epoch 4 |  iter 1 / 2 | time 0[s] | loss 1.95\n",
      "| epoch 5 |  iter 1 / 2 | time 0[s] | loss 1.95\n",
      "| epoch 6 |  iter 1 / 2 | time 0[s] | loss 1.95\n",
      "| epoch 7 |  iter 1 / 2 | time 0[s] | loss 1.95\n",
      "| epoch 8 |  iter 1 / 2 | time 0[s] | loss 1.95\n",
      "| epoch 9 |  iter 1 / 2 | time 0[s] | loss 1.95\n",
      "| epoch 10 |  iter 1 / 2 | time 0[s] | loss 1.94\n",
      "| epoch 11 |  iter 1 / 2 | time 0[s] | loss 1.94\n",
      "| epoch 12 |  iter 1 / 2 | time 0[s] | loss 1.94\n",
      "| epoch 13 |  iter 1 / 2 | time 0[s] | loss 1.94\n",
      "| epoch 14 |  iter 1 / 2 | time 0[s] | loss 1.94\n",
      "| epoch 15 |  iter 1 / 2 | time 0[s] | loss 1.94\n",
      "| epoch 16 |  iter 1 / 2 | time 0[s] | loss 1.94\n",
      "| epoch 17 |  iter 1 / 2 | time 0[s] | loss 1.94\n",
      "| epoch 18 |  iter 1 / 2 | time 0[s] | loss 1.94\n",
      "| epoch 19 |  iter 1 / 2 | time 0[s] | loss 1.94\n",
      "| epoch 20 |  iter 1 / 2 | time 0[s] | loss 1.94\n",
      "| epoch 21 |  iter 1 / 2 | time 0[s] | loss 1.94\n",
      "| epoch 22 |  iter 1 / 2 | time 0[s] | loss 1.94\n",
      "| epoch 23 |  iter 1 / 2 | time 0[s] | loss 1.94\n",
      "| epoch 24 |  iter 1 / 2 | time 0[s] | loss 1.94\n",
      "| epoch 25 |  iter 1 / 2 | time 0[s] | loss 1.94\n",
      "| epoch 26 |  iter 1 / 2 | time 0[s] | loss 1.94\n",
      "| epoch 27 |  iter 1 / 2 | time 0[s] | loss 1.94\n",
      "| epoch 28 |  iter 1 / 2 | time 0[s] | loss 1.93\n",
      "| epoch 29 |  iter 1 / 2 | time 0[s] | loss 1.93\n",
      "| epoch 30 |  iter 1 / 2 | time 0[s] | loss 1.93\n",
      "| epoch 31 |  iter 1 / 2 | time 0[s] | loss 1.93\n",
      "| epoch 32 |  iter 1 / 2 | time 0[s] | loss 1.93\n",
      "| epoch 33 |  iter 1 / 2 | time 0[s] | loss 1.93\n",
      "| epoch 34 |  iter 1 / 2 | time 0[s] | loss 1.93\n",
      "| epoch 35 |  iter 1 / 2 | time 0[s] | loss 1.93\n",
      "| epoch 36 |  iter 1 / 2 | time 0[s] | loss 1.92\n",
      "| epoch 37 |  iter 1 / 2 | time 0[s] | loss 1.92\n",
      "| epoch 38 |  iter 1 / 2 | time 0[s] | loss 1.92\n",
      "| epoch 39 |  iter 1 / 2 | time 0[s] | loss 1.92\n",
      "| epoch 40 |  iter 1 / 2 | time 0[s] | loss 1.92\n",
      "| epoch 41 |  iter 1 / 2 | time 0[s] | loss 1.92\n",
      "| epoch 42 |  iter 1 / 2 | time 0[s] | loss 1.91\n",
      "| epoch 43 |  iter 1 / 2 | time 0[s] | loss 1.91\n",
      "| epoch 44 |  iter 1 / 2 | time 0[s] | loss 1.91\n",
      "| epoch 45 |  iter 1 / 2 | time 0[s] | loss 1.91\n",
      "| epoch 46 |  iter 1 / 2 | time 0[s] | loss 1.91\n",
      "| epoch 47 |  iter 1 / 2 | time 0[s] | loss 1.90\n",
      "| epoch 48 |  iter 1 / 2 | time 0[s] | loss 1.90\n",
      "| epoch 49 |  iter 1 / 2 | time 0[s] | loss 1.90\n",
      "| epoch 50 |  iter 1 / 2 | time 0[s] | loss 1.90\n",
      "| epoch 51 |  iter 1 / 2 | time 0[s] | loss 1.89\n",
      "| epoch 52 |  iter 1 / 2 | time 0[s] | loss 1.89\n",
      "| epoch 53 |  iter 1 / 2 | time 0[s] | loss 1.89\n",
      "| epoch 54 |  iter 1 / 2 | time 0[s] | loss 1.89\n",
      "| epoch 55 |  iter 1 / 2 | time 0[s] | loss 1.88\n",
      "| epoch 56 |  iter 1 / 2 | time 0[s] | loss 1.89\n",
      "| epoch 57 |  iter 1 / 2 | time 0[s] | loss 1.88\n",
      "| epoch 58 |  iter 1 / 2 | time 0[s] | loss 1.88\n",
      "| epoch 59 |  iter 1 / 2 | time 0[s] | loss 1.87\n",
      "| epoch 60 |  iter 1 / 2 | time 0[s] | loss 1.88\n",
      "| epoch 61 |  iter 1 / 2 | time 0[s] | loss 1.87\n",
      "| epoch 62 |  iter 1 / 2 | time 0[s] | loss 1.86\n",
      "| epoch 63 |  iter 1 / 2 | time 0[s] | loss 1.87\n",
      "| epoch 64 |  iter 1 / 2 | time 0[s] | loss 1.85\n",
      "| epoch 65 |  iter 1 / 2 | time 0[s] | loss 1.85\n",
      "| epoch 66 |  iter 1 / 2 | time 0[s] | loss 1.86\n",
      "| epoch 67 |  iter 1 / 2 | time 0[s] | loss 1.85\n",
      "| epoch 68 |  iter 1 / 2 | time 0[s] | loss 1.85\n",
      "| epoch 69 |  iter 1 / 2 | time 0[s] | loss 1.84\n",
      "| epoch 70 |  iter 1 / 2 | time 0[s] | loss 1.84\n",
      "| epoch 71 |  iter 1 / 2 | time 0[s] | loss 1.84\n",
      "| epoch 72 |  iter 1 / 2 | time 0[s] | loss 1.84\n",
      "| epoch 73 |  iter 1 / 2 | time 0[s] | loss 1.83\n",
      "| epoch 74 |  iter 1 / 2 | time 0[s] | loss 1.82\n",
      "| epoch 75 |  iter 1 / 2 | time 0[s] | loss 1.83\n",
      "| epoch 76 |  iter 1 / 2 | time 0[s] | loss 1.82\n",
      "| epoch 77 |  iter 1 / 2 | time 0[s] | loss 1.82\n",
      "| epoch 78 |  iter 1 / 2 | time 0[s] | loss 1.80\n",
      "| epoch 79 |  iter 1 / 2 | time 0[s] | loss 1.80\n",
      "| epoch 80 |  iter 1 / 2 | time 0[s] | loss 1.81\n",
      "| epoch 81 |  iter 1 / 2 | time 0[s] | loss 1.80\n",
      "| epoch 82 |  iter 1 / 2 | time 0[s] | loss 1.80\n",
      "| epoch 83 |  iter 1 / 2 | time 0[s] | loss 1.79\n",
      "| epoch 84 |  iter 1 / 2 | time 0[s] | loss 1.79\n",
      "| epoch 85 |  iter 1 / 2 | time 0[s] | loss 1.79\n",
      "| epoch 86 |  iter 1 / 2 | time 0[s] | loss 1.77\n",
      "| epoch 87 |  iter 1 / 2 | time 0[s] | loss 1.76\n",
      "| epoch 88 |  iter 1 / 2 | time 0[s] | loss 1.79\n",
      "| epoch 89 |  iter 1 / 2 | time 0[s] | loss 1.75\n",
      "| epoch 90 |  iter 1 / 2 | time 0[s] | loss 1.77\n",
      "| epoch 91 |  iter 1 / 2 | time 0[s] | loss 1.75\n",
      "| epoch 92 |  iter 1 / 2 | time 0[s] | loss 1.77\n",
      "| epoch 93 |  iter 1 / 2 | time 0[s] | loss 1.72\n",
      "| epoch 94 |  iter 1 / 2 | time 0[s] | loss 1.77\n",
      "| epoch 95 |  iter 1 / 2 | time 0[s] | loss 1.73\n",
      "| epoch 96 |  iter 1 / 2 | time 0[s] | loss 1.73\n",
      "| epoch 97 |  iter 1 / 2 | time 0[s] | loss 1.73\n",
      "| epoch 98 |  iter 1 / 2 | time 0[s] | loss 1.73\n",
      "| epoch 99 |  iter 1 / 2 | time 0[s] | loss 1.75\n",
      "| epoch 100 |  iter 1 / 2 | time 0[s] | loss 1.72\n",
      "| epoch 101 |  iter 1 / 2 | time 0[s] | loss 1.71\n",
      "| epoch 102 |  iter 1 / 2 | time 0[s] | loss 1.71\n",
      "| epoch 103 |  iter 1 / 2 | time 0[s] | loss 1.69\n",
      "| epoch 104 |  iter 1 / 2 | time 0[s] | loss 1.71\n",
      "| epoch 105 |  iter 1 / 2 | time 0[s] | loss 1.67\n",
      "| epoch 106 |  iter 1 / 2 | time 0[s] | loss 1.72\n",
      "| epoch 107 |  iter 1 / 2 | time 0[s] | loss 1.67\n",
      "| epoch 108 |  iter 1 / 2 | time 0[s] | loss 1.67\n",
      "| epoch 109 |  iter 1 / 2 | time 0[s] | loss 1.69\n",
      "| epoch 110 |  iter 1 / 2 | time 0[s] | loss 1.71\n",
      "| epoch 111 |  iter 1 / 2 | time 0[s] | loss 1.65\n",
      "| epoch 112 |  iter 1 / 2 | time 0[s] | loss 1.63\n",
      "| epoch 113 |  iter 1 / 2 | time 0[s] | loss 1.67\n",
      "| epoch 114 |  iter 1 / 2 | time 0[s] | loss 1.66\n",
      "| epoch 115 |  iter 1 / 2 | time 0[s] | loss 1.65\n",
      "| epoch 116 |  iter 1 / 2 | time 0[s] | loss 1.65\n",
      "| epoch 117 |  iter 1 / 2 | time 0[s] | loss 1.61\n",
      "| epoch 118 |  iter 1 / 2 | time 0[s] | loss 1.68\n",
      "| epoch 119 |  iter 1 / 2 | time 0[s] | loss 1.60\n",
      "| epoch 120 |  iter 1 / 2 | time 0[s] | loss 1.65\n",
      "| epoch 121 |  iter 1 / 2 | time 0[s] | loss 1.59\n",
      "| epoch 122 |  iter 1 / 2 | time 0[s] | loss 1.63\n",
      "| epoch 123 |  iter 1 / 2 | time 0[s] | loss 1.60\n",
      "| epoch 124 |  iter 1 / 2 | time 0[s] | loss 1.63\n",
      "| epoch 125 |  iter 1 / 2 | time 0[s] | loss 1.58\n",
      "| epoch 126 |  iter 1 / 2 | time 0[s] | loss 1.60\n",
      "| epoch 127 |  iter 1 / 2 | time 0[s] | loss 1.59\n",
      "| epoch 128 |  iter 1 / 2 | time 0[s] | loss 1.61\n",
      "| epoch 129 |  iter 1 / 2 | time 0[s] | loss 1.57\n",
      "| epoch 130 |  iter 1 / 2 | time 0[s] | loss 1.55\n",
      "| epoch 131 |  iter 1 / 2 | time 0[s] | loss 1.56\n",
      "| epoch 132 |  iter 1 / 2 | time 0[s] | loss 1.64\n",
      "| epoch 133 |  iter 1 / 2 | time 0[s] | loss 1.50\n",
      "| epoch 134 |  iter 1 / 2 | time 0[s] | loss 1.55\n",
      "| epoch 135 |  iter 1 / 2 | time 0[s] | loss 1.56\n",
      "| epoch 136 |  iter 1 / 2 | time 0[s] | loss 1.58\n",
      "| epoch 137 |  iter 1 / 2 | time 0[s] | loss 1.51\n",
      "| epoch 138 |  iter 1 / 2 | time 0[s] | loss 1.56\n",
      "| epoch 139 |  iter 1 / 2 | time 0[s] | loss 1.55\n",
      "| epoch 140 |  iter 1 / 2 | time 0[s] | loss 1.55\n",
      "| epoch 141 |  iter 1 / 2 | time 0[s] | loss 1.49\n",
      "| epoch 142 |  iter 1 / 2 | time 0[s] | loss 1.47\n",
      "| epoch 143 |  iter 1 / 2 | time 0[s] | loss 1.51\n",
      "| epoch 144 |  iter 1 / 2 | time 0[s] | loss 1.56\n",
      "| epoch 145 |  iter 1 / 2 | time 0[s] | loss 1.45\n",
      "| epoch 146 |  iter 1 / 2 | time 0[s] | loss 1.58\n",
      "| epoch 147 |  iter 1 / 2 | time 0[s] | loss 1.47\n",
      "| epoch 148 |  iter 1 / 2 | time 0[s] | loss 1.49\n",
      "| epoch 149 |  iter 1 / 2 | time 0[s] | loss 1.47\n",
      "| epoch 150 |  iter 1 / 2 | time 0[s] | loss 1.46\n",
      "| epoch 151 |  iter 1 / 2 | time 0[s] | loss 1.47\n",
      "| epoch 152 |  iter 1 / 2 | time 0[s] | loss 1.53\n",
      "| epoch 153 |  iter 1 / 2 | time 0[s] | loss 1.38\n",
      "| epoch 154 |  iter 1 / 2 | time 0[s] | loss 1.50\n",
      "| epoch 155 |  iter 1 / 2 | time 0[s] | loss 1.48\n",
      "| epoch 156 |  iter 1 / 2 | time 0[s] | loss 1.39\n",
      "| epoch 157 |  iter 1 / 2 | time 0[s] | loss 1.50\n",
      "| epoch 158 |  iter 1 / 2 | time 0[s] | loss 1.40\n",
      "| epoch 159 |  iter 1 / 2 | time 0[s] | loss 1.50\n",
      "| epoch 160 |  iter 1 / 2 | time 0[s] | loss 1.38\n",
      "| epoch 161 |  iter 1 / 2 | time 0[s] | loss 1.43\n",
      "| epoch 162 |  iter 1 / 2 | time 0[s] | loss 1.38\n",
      "| epoch 163 |  iter 1 / 2 | time 0[s] | loss 1.49\n",
      "| epoch 164 |  iter 1 / 2 | time 0[s] | loss 1.34\n",
      "| epoch 165 |  iter 1 / 2 | time 0[s] | loss 1.51\n",
      "| epoch 166 |  iter 1 / 2 | time 0[s] | loss 1.30\n",
      "| epoch 167 |  iter 1 / 2 | time 0[s] | loss 1.47\n",
      "| epoch 168 |  iter 1 / 2 | time 0[s] | loss 1.43\n",
      "| epoch 169 |  iter 1 / 2 | time 0[s] | loss 1.36\n",
      "| epoch 170 |  iter 1 / 2 | time 0[s] | loss 1.42\n",
      "| epoch 171 |  iter 1 / 2 | time 0[s] | loss 1.35\n",
      "| epoch 172 |  iter 1 / 2 | time 0[s] | loss 1.35\n",
      "| epoch 173 |  iter 1 / 2 | time 0[s] | loss 1.41\n",
      "| epoch 174 |  iter 1 / 2 | time 0[s] | loss 1.40\n",
      "| epoch 175 |  iter 1 / 2 | time 0[s] | loss 1.30\n",
      "| epoch 176 |  iter 1 / 2 | time 0[s] | loss 1.41\n",
      "| epoch 177 |  iter 1 / 2 | time 0[s] | loss 1.34\n",
      "| epoch 178 |  iter 1 / 2 | time 0[s] | loss 1.35\n",
      "| epoch 179 |  iter 1 / 2 | time 0[s] | loss 1.34\n",
      "| epoch 180 |  iter 1 / 2 | time 0[s] | loss 1.37\n",
      "| epoch 181 |  iter 1 / 2 | time 0[s] | loss 1.32\n",
      "| epoch 182 |  iter 1 / 2 | time 0[s] | loss 1.29\n",
      "| epoch 183 |  iter 1 / 2 | time 0[s] | loss 1.38\n",
      "| epoch 184 |  iter 1 / 2 | time 0[s] | loss 1.37\n",
      "| epoch 185 |  iter 1 / 2 | time 0[s] | loss 1.27\n",
      "| epoch 186 |  iter 1 / 2 | time 0[s] | loss 1.28\n",
      "| epoch 187 |  iter 1 / 2 | time 0[s] | loss 1.34\n",
      "| epoch 188 |  iter 1 / 2 | time 0[s] | loss 1.29\n",
      "| epoch 189 |  iter 1 / 2 | time 0[s] | loss 1.33\n",
      "| epoch 190 |  iter 1 / 2 | time 0[s] | loss 1.31\n",
      "| epoch 191 |  iter 1 / 2 | time 0[s] | loss 1.33\n",
      "| epoch 192 |  iter 1 / 2 | time 0[s] | loss 1.27\n",
      "| epoch 193 |  iter 1 / 2 | time 0[s] | loss 1.27\n",
      "| epoch 194 |  iter 1 / 2 | time 0[s] | loss 1.31\n",
      "| epoch 195 |  iter 1 / 2 | time 0[s] | loss 1.29\n",
      "| epoch 196 |  iter 1 / 2 | time 0[s] | loss 1.32\n",
      "| epoch 197 |  iter 1 / 2 | time 0[s] | loss 1.34\n",
      "| epoch 198 |  iter 1 / 2 | time 0[s] | loss 1.22\n",
      "| epoch 199 |  iter 1 / 2 | time 0[s] | loss 1.18\n",
      "| epoch 200 |  iter 1 / 2 | time 0[s] | loss 1.33\n",
      "| epoch 201 |  iter 1 / 2 | time 0[s] | loss 1.27\n",
      "| epoch 202 |  iter 1 / 2 | time 0[s] | loss 1.26\n",
      "| epoch 203 |  iter 1 / 2 | time 0[s] | loss 1.32\n",
      "| epoch 204 |  iter 1 / 2 | time 0[s] | loss 1.28\n",
      "| epoch 205 |  iter 1 / 2 | time 0[s] | loss 1.17\n",
      "| epoch 206 |  iter 1 / 2 | time 0[s] | loss 1.25\n",
      "| epoch 207 |  iter 1 / 2 | time 0[s] | loss 1.31\n",
      "| epoch 208 |  iter 1 / 2 | time 0[s] | loss 1.19\n",
      "| epoch 209 |  iter 1 / 2 | time 0[s] | loss 1.23\n",
      "| epoch 210 |  iter 1 / 2 | time 0[s] | loss 1.24\n",
      "| epoch 211 |  iter 1 / 2 | time 0[s] | loss 1.25\n",
      "| epoch 212 |  iter 1 / 2 | time 0[s] | loss 1.22\n",
      "| epoch 213 |  iter 1 / 2 | time 0[s] | loss 1.25\n",
      "| epoch 214 |  iter 1 / 2 | time 0[s] | loss 1.21\n",
      "| epoch 215 |  iter 1 / 2 | time 0[s] | loss 1.21\n",
      "| epoch 216 |  iter 1 / 2 | time 0[s] | loss 1.29\n",
      "| epoch 217 |  iter 1 / 2 | time 0[s] | loss 1.06\n",
      "| epoch 218 |  iter 1 / 2 | time 0[s] | loss 1.31\n",
      "| epoch 219 |  iter 1 / 2 | time 0[s] | loss 1.21\n",
      "| epoch 220 |  iter 1 / 2 | time 0[s] | loss 1.19\n",
      "| epoch 221 |  iter 1 / 2 | time 0[s] | loss 1.14\n",
      "| epoch 222 |  iter 1 / 2 | time 0[s] | loss 1.27\n",
      "| epoch 223 |  iter 1 / 2 | time 0[s] | loss 1.17\n",
      "| epoch 224 |  iter 1 / 2 | time 0[s] | loss 1.21\n",
      "| epoch 225 |  iter 1 / 2 | time 0[s] | loss 1.26\n",
      "| epoch 226 |  iter 1 / 2 | time 0[s] | loss 1.02\n",
      "| epoch 227 |  iter 1 / 2 | time 0[s] | loss 1.28\n",
      "| epoch 228 |  iter 1 / 2 | time 0[s] | loss 1.18\n",
      "| epoch 229 |  iter 1 / 2 | time 0[s] | loss 1.15\n",
      "| epoch 230 |  iter 1 / 2 | time 0[s] | loss 1.20\n",
      "| epoch 231 |  iter 1 / 2 | time 0[s] | loss 1.14\n",
      "| epoch 232 |  iter 1 / 2 | time 0[s] | loss 1.24\n",
      "| epoch 233 |  iter 1 / 2 | time 0[s] | loss 1.12\n",
      "| epoch 234 |  iter 1 / 2 | time 0[s] | loss 1.23\n",
      "| epoch 235 |  iter 1 / 2 | time 0[s] | loss 1.14\n",
      "| epoch 236 |  iter 1 / 2 | time 0[s] | loss 1.11\n",
      "| epoch 237 |  iter 1 / 2 | time 0[s] | loss 1.05\n",
      "| epoch 238 |  iter 1 / 2 | time 0[s] | loss 1.33\n",
      "| epoch 239 |  iter 1 / 2 | time 0[s] | loss 1.05\n",
      "| epoch 240 |  iter 1 / 2 | time 0[s] | loss 1.24\n",
      "| epoch 241 |  iter 1 / 2 | time 0[s] | loss 1.05\n",
      "| epoch 242 |  iter 1 / 2 | time 0[s] | loss 1.24\n",
      "| epoch 243 |  iter 1 / 2 | time 0[s] | loss 1.04\n",
      "| epoch 244 |  iter 1 / 2 | time 0[s] | loss 1.14\n",
      "| epoch 245 |  iter 1 / 2 | time 0[s] | loss 1.17\n",
      "| epoch 246 |  iter 1 / 2 | time 0[s] | loss 1.11\n",
      "| epoch 247 |  iter 1 / 2 | time 0[s] | loss 1.16\n",
      "| epoch 248 |  iter 1 / 2 | time 0[s] | loss 1.11\n",
      "| epoch 249 |  iter 1 / 2 | time 0[s] | loss 1.23\n",
      "| epoch 250 |  iter 1 / 2 | time 0[s] | loss 1.02\n",
      "| epoch 251 |  iter 1 / 2 | time 0[s] | loss 1.12\n",
      "| epoch 252 |  iter 1 / 2 | time 0[s] | loss 1.04\n",
      "| epoch 253 |  iter 1 / 2 | time 0[s] | loss 1.22\n",
      "| epoch 254 |  iter 1 / 2 | time 0[s] | loss 1.10\n",
      "| epoch 255 |  iter 1 / 2 | time 0[s] | loss 1.13\n",
      "| epoch 256 |  iter 1 / 2 | time 0[s] | loss 1.09\n",
      "| epoch 257 |  iter 1 / 2 | time 0[s] | loss 1.11\n",
      "| epoch 258 |  iter 1 / 2 | time 0[s] | loss 1.19\n",
      "| epoch 259 |  iter 1 / 2 | time 0[s] | loss 1.11\n",
      "| epoch 260 |  iter 1 / 2 | time 0[s] | loss 1.04\n",
      "| epoch 261 |  iter 1 / 2 | time 0[s] | loss 1.10\n",
      "| epoch 262 |  iter 1 / 2 | time 0[s] | loss 1.10\n",
      "| epoch 263 |  iter 1 / 2 | time 0[s] | loss 1.10\n",
      "| epoch 264 |  iter 1 / 2 | time 0[s] | loss 1.07\n",
      "| epoch 265 |  iter 1 / 2 | time 0[s] | loss 1.10\n",
      "| epoch 266 |  iter 1 / 2 | time 0[s] | loss 1.09\n",
      "| epoch 267 |  iter 1 / 2 | time 0[s] | loss 1.11\n",
      "| epoch 268 |  iter 1 / 2 | time 0[s] | loss 1.07\n",
      "| epoch 269 |  iter 1 / 2 | time 0[s] | loss 1.11\n",
      "| epoch 270 |  iter 1 / 2 | time 0[s] | loss 1.06\n",
      "| epoch 271 |  iter 1 / 2 | time 0[s] | loss 1.00\n",
      "| epoch 272 |  iter 1 / 2 | time 0[s] | loss 1.08\n",
      "| epoch 273 |  iter 1 / 2 | time 0[s] | loss 1.19\n",
      "| epoch 274 |  iter 1 / 2 | time 0[s] | loss 1.08\n",
      "| epoch 275 |  iter 1 / 2 | time 0[s] | loss 1.05\n",
      "| epoch 276 |  iter 1 / 2 | time 0[s] | loss 1.10\n",
      "| epoch 277 |  iter 1 / 2 | time 0[s] | loss 1.07\n",
      "| epoch 278 |  iter 1 / 2 | time 0[s] | loss 1.05\n",
      "| epoch 279 |  iter 1 / 2 | time 0[s] | loss 0.98\n",
      "| epoch 280 |  iter 1 / 2 | time 0[s] | loss 1.27\n",
      "| epoch 281 |  iter 1 / 2 | time 0[s] | loss 1.05\n",
      "| epoch 282 |  iter 1 / 2 | time 0[s] | loss 0.97\n",
      "| epoch 283 |  iter 1 / 2 | time 0[s] | loss 1.09\n",
      "| epoch 284 |  iter 1 / 2 | time 0[s] | loss 1.16\n",
      "| epoch 285 |  iter 1 / 2 | time 0[s] | loss 1.06\n",
      "| epoch 286 |  iter 1 / 2 | time 0[s] | loss 0.85\n",
      "| epoch 287 |  iter 1 / 2 | time 0[s] | loss 1.17\n",
      "| epoch 288 |  iter 1 / 2 | time 0[s] | loss 1.06\n",
      "| epoch 289 |  iter 1 / 2 | time 0[s] | loss 0.94\n",
      "| epoch 290 |  iter 1 / 2 | time 0[s] | loss 1.15\n",
      "| epoch 291 |  iter 1 / 2 | time 0[s] | loss 1.14\n",
      "| epoch 292 |  iter 1 / 2 | time 0[s] | loss 0.86\n",
      "| epoch 293 |  iter 1 / 2 | time 0[s] | loss 1.14\n",
      "| epoch 294 |  iter 1 / 2 | time 0[s] | loss 1.14\n",
      "| epoch 295 |  iter 1 / 2 | time 0[s] | loss 1.07\n",
      "| epoch 296 |  iter 1 / 2 | time 0[s] | loss 1.04\n",
      "| epoch 297 |  iter 1 / 2 | time 0[s] | loss 0.93\n",
      "| epoch 298 |  iter 1 / 2 | time 0[s] | loss 1.04\n",
      "| epoch 299 |  iter 1 / 2 | time 0[s] | loss 1.03\n",
      "| epoch 300 |  iter 1 / 2 | time 0[s] | loss 1.07\n",
      "| epoch 301 |  iter 1 / 2 | time 0[s] | loss 1.01\n",
      "| epoch 302 |  iter 1 / 2 | time 0[s] | loss 1.05\n",
      "| epoch 303 |  iter 1 / 2 | time 0[s] | loss 1.13\n",
      "| epoch 304 |  iter 1 / 2 | time 0[s] | loss 0.94\n",
      "| epoch 305 |  iter 1 / 2 | time 0[s] | loss 1.03\n",
      "| epoch 306 |  iter 1 / 2 | time 0[s] | loss 1.01\n",
      "| epoch 307 |  iter 1 / 2 | time 0[s] | loss 1.05\n",
      "| epoch 308 |  iter 1 / 2 | time 0[s] | loss 1.12\n",
      "| epoch 309 |  iter 1 / 2 | time 0[s] | loss 0.93\n",
      "| epoch 310 |  iter 1 / 2 | time 0[s] | loss 1.00\n",
      "| epoch 311 |  iter 1 / 2 | time 0[s] | loss 0.92\n",
      "| epoch 312 |  iter 1 / 2 | time 0[s] | loss 1.13\n",
      "| epoch 313 |  iter 1 / 2 | time 0[s] | loss 1.02\n",
      "| epoch 314 |  iter 1 / 2 | time 0[s] | loss 1.03\n",
      "| epoch 315 |  iter 1 / 2 | time 0[s] | loss 1.02\n",
      "| epoch 316 |  iter 1 / 2 | time 0[s] | loss 0.91\n",
      "| epoch 317 |  iter 1 / 2 | time 0[s] | loss 1.21\n",
      "| epoch 318 |  iter 1 / 2 | time 0[s] | loss 0.84\n",
      "| epoch 319 |  iter 1 / 2 | time 0[s] | loss 1.10\n",
      "| epoch 320 |  iter 1 / 2 | time 0[s] | loss 1.01\n",
      "| epoch 321 |  iter 1 / 2 | time 0[s] | loss 0.93\n",
      "| epoch 322 |  iter 1 / 2 | time 0[s] | loss 0.99\n",
      "| epoch 323 |  iter 1 / 2 | time 0[s] | loss 1.12\n",
      "| epoch 324 |  iter 1 / 2 | time 0[s] | loss 1.01\n",
      "| epoch 325 |  iter 1 / 2 | time 0[s] | loss 1.02\n",
      "| epoch 326 |  iter 1 / 2 | time 0[s] | loss 1.00\n",
      "| epoch 327 |  iter 1 / 2 | time 0[s] | loss 0.98\n",
      "| epoch 328 |  iter 1 / 2 | time 0[s] | loss 1.02\n",
      "| epoch 329 |  iter 1 / 2 | time 0[s] | loss 1.00\n",
      "| epoch 330 |  iter 1 / 2 | time 0[s] | loss 0.89\n",
      "| epoch 331 |  iter 1 / 2 | time 0[s] | loss 1.13\n",
      "| epoch 332 |  iter 1 / 2 | time 0[s] | loss 0.96\n",
      "| epoch 333 |  iter 1 / 2 | time 0[s] | loss 1.11\n",
      "| epoch 334 |  iter 1 / 2 | time 0[s] | loss 0.91\n",
      "| epoch 335 |  iter 1 / 2 | time 0[s] | loss 1.11\n",
      "| epoch 336 |  iter 1 / 2 | time 0[s] | loss 0.78\n",
      "| epoch 337 |  iter 1 / 2 | time 0[s] | loss 1.09\n",
      "| epoch 338 |  iter 1 / 2 | time 0[s] | loss 0.89\n",
      "| epoch 339 |  iter 1 / 2 | time 0[s] | loss 1.20\n",
      "| epoch 340 |  iter 1 / 2 | time 0[s] | loss 0.88\n",
      "| epoch 341 |  iter 1 / 2 | time 0[s] | loss 0.97\n",
      "| epoch 342 |  iter 1 / 2 | time 0[s] | loss 1.01\n",
      "| epoch 343 |  iter 1 / 2 | time 0[s] | loss 0.98\n",
      "| epoch 344 |  iter 1 / 2 | time 0[s] | loss 0.98\n",
      "| epoch 345 |  iter 1 / 2 | time 0[s] | loss 1.11\n",
      "| epoch 346 |  iter 1 / 2 | time 0[s] | loss 0.86\n",
      "| epoch 347 |  iter 1 / 2 | time 0[s] | loss 0.89\n",
      "| epoch 348 |  iter 1 / 2 | time 0[s] | loss 1.07\n",
      "| epoch 349 |  iter 1 / 2 | time 0[s] | loss 1.10\n",
      "| epoch 350 |  iter 1 / 2 | time 0[s] | loss 0.86\n",
      "| epoch 351 |  iter 1 / 2 | time 0[s] | loss 0.96\n",
      "| epoch 352 |  iter 1 / 2 | time 0[s] | loss 0.99\n",
      "| epoch 353 |  iter 1 / 2 | time 0[s] | loss 0.96\n",
      "| epoch 354 |  iter 1 / 2 | time 0[s] | loss 1.00\n",
      "| epoch 355 |  iter 1 / 2 | time 0[s] | loss 0.99\n",
      "| epoch 356 |  iter 1 / 2 | time 0[s] | loss 0.97\n",
      "| epoch 357 |  iter 1 / 2 | time 0[s] | loss 0.97\n",
      "| epoch 358 |  iter 1 / 2 | time 0[s] | loss 0.85\n",
      "| epoch 359 |  iter 1 / 2 | time 0[s] | loss 1.07\n",
      "| epoch 360 |  iter 1 / 2 | time 0[s] | loss 0.88\n",
      "| epoch 361 |  iter 1 / 2 | time 0[s] | loss 1.05\n",
      "| epoch 362 |  iter 1 / 2 | time 0[s] | loss 0.99\n",
      "| epoch 363 |  iter 1 / 2 | time 0[s] | loss 0.97\n",
      "| epoch 364 |  iter 1 / 2 | time 0[s] | loss 1.07\n",
      "| epoch 365 |  iter 1 / 2 | time 0[s] | loss 0.87\n",
      "| epoch 366 |  iter 1 / 2 | time 0[s] | loss 0.94\n",
      "| epoch 367 |  iter 1 / 2 | time 0[s] | loss 0.99\n",
      "| epoch 368 |  iter 1 / 2 | time 0[s] | loss 1.06\n",
      "| epoch 369 |  iter 1 / 2 | time 0[s] | loss 0.86\n",
      "| epoch 370 |  iter 1 / 2 | time 0[s] | loss 0.96\n",
      "| epoch 371 |  iter 1 / 2 | time 0[s] | loss 0.96\n",
      "| epoch 372 |  iter 1 / 2 | time 0[s] | loss 0.96\n",
      "| epoch 373 |  iter 1 / 2 | time 0[s] | loss 0.84\n",
      "| epoch 374 |  iter 1 / 2 | time 0[s] | loss 1.08\n",
      "| epoch 375 |  iter 1 / 2 | time 0[s] | loss 0.96\n",
      "| epoch 376 |  iter 1 / 2 | time 0[s] | loss 0.96\n",
      "| epoch 377 |  iter 1 / 2 | time 0[s] | loss 0.94\n",
      "| epoch 378 |  iter 1 / 2 | time 0[s] | loss 0.85\n",
      "| epoch 379 |  iter 1 / 2 | time 0[s] | loss 1.08\n",
      "| epoch 380 |  iter 1 / 2 | time 0[s] | loss 0.95\n",
      "| epoch 381 |  iter 1 / 2 | time 0[s] | loss 1.05\n",
      "| epoch 382 |  iter 1 / 2 | time 0[s] | loss 0.95\n",
      "| epoch 383 |  iter 1 / 2 | time 0[s] | loss 0.75\n",
      "| epoch 384 |  iter 1 / 2 | time 0[s] | loss 1.05\n",
      "| epoch 385 |  iter 1 / 2 | time 0[s] | loss 0.93\n",
      "| epoch 386 |  iter 1 / 2 | time 0[s] | loss 1.07\n",
      "| epoch 387 |  iter 1 / 2 | time 0[s] | loss 0.85\n",
      "| epoch 388 |  iter 1 / 2 | time 0[s] | loss 0.97\n",
      "| epoch 389 |  iter 1 / 2 | time 0[s] | loss 0.80\n",
      "| epoch 390 |  iter 1 / 2 | time 0[s] | loss 1.06\n",
      "| epoch 391 |  iter 1 / 2 | time 0[s] | loss 0.94\n",
      "| epoch 392 |  iter 1 / 2 | time 0[s] | loss 0.94\n",
      "| epoch 393 |  iter 1 / 2 | time 0[s] | loss 0.95\n",
      "| epoch 394 |  iter 1 / 2 | time 0[s] | loss 1.06\n",
      "| epoch 395 |  iter 1 / 2 | time 0[s] | loss 0.82\n",
      "| epoch 396 |  iter 1 / 2 | time 0[s] | loss 0.94\n",
      "| epoch 397 |  iter 1 / 2 | time 0[s] | loss 0.94\n",
      "| epoch 398 |  iter 1 / 2 | time 0[s] | loss 0.94\n",
      "| epoch 399 |  iter 1 / 2 | time 0[s] | loss 0.96\n",
      "| epoch 400 |  iter 1 / 2 | time 0[s] | loss 1.02\n",
      "| epoch 401 |  iter 1 / 2 | time 0[s] | loss 0.72\n",
      "| epoch 402 |  iter 1 / 2 | time 0[s] | loss 1.08\n",
      "| epoch 403 |  iter 1 / 2 | time 0[s] | loss 0.82\n",
      "| epoch 404 |  iter 1 / 2 | time 0[s] | loss 1.04\n",
      "| epoch 405 |  iter 1 / 2 | time 0[s] | loss 0.93\n",
      "| epoch 406 |  iter 1 / 2 | time 0[s] | loss 0.95\n",
      "| epoch 407 |  iter 1 / 2 | time 0[s] | loss 0.91\n",
      "| epoch 408 |  iter 1 / 2 | time 0[s] | loss 0.81\n",
      "| epoch 409 |  iter 1 / 2 | time 0[s] | loss 1.05\n",
      "| epoch 410 |  iter 1 / 2 | time 0[s] | loss 0.91\n",
      "| epoch 411 |  iter 1 / 2 | time 0[s] | loss 0.95\n",
      "| epoch 412 |  iter 1 / 2 | time 0[s] | loss 0.93\n",
      "| epoch 413 |  iter 1 / 2 | time 0[s] | loss 0.93\n",
      "| epoch 414 |  iter 1 / 2 | time 0[s] | loss 0.92\n",
      "| epoch 415 |  iter 1 / 2 | time 0[s] | loss 1.05\n",
      "| epoch 416 |  iter 1 / 2 | time 0[s] | loss 0.82\n",
      "| epoch 417 |  iter 1 / 2 | time 0[s] | loss 0.90\n",
      "| epoch 418 |  iter 1 / 2 | time 0[s] | loss 0.93\n",
      "| epoch 419 |  iter 1 / 2 | time 0[s] | loss 0.91\n",
      "| epoch 420 |  iter 1 / 2 | time 0[s] | loss 0.95\n",
      "| epoch 421 |  iter 1 / 2 | time 0[s] | loss 1.00\n",
      "| epoch 422 |  iter 1 / 2 | time 0[s] | loss 0.83\n",
      "| epoch 423 |  iter 1 / 2 | time 0[s] | loss 0.81\n",
      "| epoch 424 |  iter 1 / 2 | time 0[s] | loss 1.04\n",
      "| epoch 425 |  iter 1 / 2 | time 0[s] | loss 0.92\n",
      "| epoch 426 |  iter 1 / 2 | time 0[s] | loss 0.88\n",
      "| epoch 427 |  iter 1 / 2 | time 0[s] | loss 0.92\n",
      "| epoch 428 |  iter 1 / 2 | time 0[s] | loss 1.03\n",
      "| epoch 429 |  iter 1 / 2 | time 0[s] | loss 0.71\n",
      "| epoch 430 |  iter 1 / 2 | time 0[s] | loss 0.90\n",
      "| epoch 431 |  iter 1 / 2 | time 0[s] | loss 0.93\n",
      "| epoch 432 |  iter 1 / 2 | time 0[s] | loss 1.02\n",
      "| epoch 433 |  iter 1 / 2 | time 0[s] | loss 1.03\n",
      "| epoch 434 |  iter 1 / 2 | time 0[s] | loss 0.80\n",
      "| epoch 435 |  iter 1 / 2 | time 0[s] | loss 0.78\n",
      "| epoch 436 |  iter 1 / 2 | time 0[s] | loss 1.13\n",
      "| epoch 437 |  iter 1 / 2 | time 0[s] | loss 0.82\n",
      "| epoch 438 |  iter 1 / 2 | time 0[s] | loss 0.91\n",
      "| epoch 439 |  iter 1 / 2 | time 0[s] | loss 1.01\n",
      "| epoch 440 |  iter 1 / 2 | time 0[s] | loss 0.89\n",
      "| epoch 441 |  iter 1 / 2 | time 0[s] | loss 0.79\n",
      "| epoch 442 |  iter 1 / 2 | time 0[s] | loss 0.82\n",
      "| epoch 443 |  iter 1 / 2 | time 0[s] | loss 1.12\n",
      "| epoch 444 |  iter 1 / 2 | time 0[s] | loss 0.81\n",
      "| epoch 445 |  iter 1 / 2 | time 0[s] | loss 1.00\n",
      "| epoch 446 |  iter 1 / 2 | time 0[s] | loss 0.67\n",
      "| epoch 447 |  iter 1 / 2 | time 0[s] | loss 0.99\n",
      "| epoch 448 |  iter 1 / 2 | time 0[s] | loss 0.90\n",
      "| epoch 449 |  iter 1 / 2 | time 0[s] | loss 1.04\n",
      "| epoch 450 |  iter 1 / 2 | time 0[s] | loss 0.90\n",
      "| epoch 451 |  iter 1 / 2 | time 0[s] | loss 0.87\n",
      "| epoch 452 |  iter 1 / 2 | time 0[s] | loss 0.80\n",
      "| epoch 453 |  iter 1 / 2 | time 0[s] | loss 0.79\n",
      "| epoch 454 |  iter 1 / 2 | time 0[s] | loss 1.01\n",
      "| epoch 455 |  iter 1 / 2 | time 0[s] | loss 1.00\n",
      "| epoch 456 |  iter 1 / 2 | time 0[s] | loss 0.68\n",
      "| epoch 457 |  iter 1 / 2 | time 0[s] | loss 0.92\n",
      "| epoch 458 |  iter 1 / 2 | time 0[s] | loss 0.98\n",
      "| epoch 459 |  iter 1 / 2 | time 0[s] | loss 0.89\n",
      "| epoch 460 |  iter 1 / 2 | time 0[s] | loss 0.91\n",
      "| epoch 461 |  iter 1 / 2 | time 0[s] | loss 0.87\n",
      "| epoch 462 |  iter 1 / 2 | time 0[s] | loss 0.92\n",
      "| epoch 463 |  iter 1 / 2 | time 0[s] | loss 0.99\n",
      "| epoch 464 |  iter 1 / 2 | time 0[s] | loss 0.89\n",
      "| epoch 465 |  iter 1 / 2 | time 0[s] | loss 0.89\n",
      "| epoch 466 |  iter 1 / 2 | time 0[s] | loss 0.75\n",
      "| epoch 467 |  iter 1 / 2 | time 0[s] | loss 1.02\n",
      "| epoch 468 |  iter 1 / 2 | time 0[s] | loss 0.66\n",
      "| epoch 469 |  iter 1 / 2 | time 0[s] | loss 0.98\n",
      "| epoch 470 |  iter 1 / 2 | time 0[s] | loss 0.92\n",
      "| epoch 471 |  iter 1 / 2 | time 0[s] | loss 0.75\n",
      "| epoch 472 |  iter 1 / 2 | time 0[s] | loss 0.88\n",
      "| epoch 473 |  iter 1 / 2 | time 0[s] | loss 0.99\n",
      "| epoch 474 |  iter 1 / 2 | time 0[s] | loss 0.88\n",
      "| epoch 475 |  iter 1 / 2 | time 0[s] | loss 0.98\n",
      "| epoch 476 |  iter 1 / 2 | time 0[s] | loss 0.70\n",
      "| epoch 477 |  iter 1 / 2 | time 0[s] | loss 1.09\n",
      "| epoch 478 |  iter 1 / 2 | time 0[s] | loss 0.87\n",
      "| epoch 479 |  iter 1 / 2 | time 0[s] | loss 0.78\n",
      "| epoch 480 |  iter 1 / 2 | time 0[s] | loss 0.85\n",
      "| epoch 481 |  iter 1 / 2 | time 0[s] | loss 0.80\n",
      "| epoch 482 |  iter 1 / 2 | time 0[s] | loss 1.08\n",
      "| epoch 483 |  iter 1 / 2 | time 0[s] | loss 0.74\n",
      "| epoch 484 |  iter 1 / 2 | time 0[s] | loss 0.90\n",
      "| epoch 485 |  iter 1 / 2 | time 0[s] | loss 0.87\n",
      "| epoch 486 |  iter 1 / 2 | time 0[s] | loss 0.85\n",
      "| epoch 487 |  iter 1 / 2 | time 0[s] | loss 0.87\n",
      "| epoch 488 |  iter 1 / 2 | time 0[s] | loss 0.87\n",
      "| epoch 489 |  iter 1 / 2 | time 0[s] | loss 0.87\n",
      "| epoch 490 |  iter 1 / 2 | time 0[s] | loss 0.87\n",
      "| epoch 491 |  iter 1 / 2 | time 0[s] | loss 0.90\n",
      "| epoch 492 |  iter 1 / 2 | time 0[s] | loss 0.97\n",
      "| epoch 493 |  iter 1 / 2 | time 0[s] | loss 0.74\n",
      "| epoch 494 |  iter 1 / 2 | time 0[s] | loss 0.87\n",
      "| epoch 495 |  iter 1 / 2 | time 0[s] | loss 0.90\n",
      "| epoch 496 |  iter 1 / 2 | time 0[s] | loss 0.74\n",
      "| epoch 497 |  iter 1 / 2 | time 0[s] | loss 1.07\n",
      "| epoch 498 |  iter 1 / 2 | time 0[s] | loss 0.79\n",
      "| epoch 499 |  iter 1 / 2 | time 0[s] | loss 0.93\n",
      "| epoch 500 |  iter 1 / 2 | time 0[s] | loss 0.66\n",
      "| epoch 501 |  iter 1 / 2 | time 0[s] | loss 0.99\n",
      "| epoch 502 |  iter 1 / 2 | time 0[s] | loss 0.86\n",
      "| epoch 503 |  iter 1 / 2 | time 0[s] | loss 0.86\n",
      "| epoch 504 |  iter 1 / 2 | time 0[s] | loss 0.76\n",
      "| epoch 505 |  iter 1 / 2 | time 0[s] | loss 0.93\n",
      "| epoch 506 |  iter 1 / 2 | time 0[s] | loss 0.86\n",
      "| epoch 507 |  iter 1 / 2 | time 0[s] | loss 0.86\n",
      "| epoch 508 |  iter 1 / 2 | time 0[s] | loss 0.76\n",
      "| epoch 509 |  iter 1 / 2 | time 0[s] | loss 0.98\n",
      "| epoch 510 |  iter 1 / 2 | time 0[s] | loss 0.86\n",
      "| epoch 511 |  iter 1 / 2 | time 0[s] | loss 0.82\n",
      "| epoch 512 |  iter 1 / 2 | time 0[s] | loss 0.86\n",
      "| epoch 513 |  iter 1 / 2 | time 0[s] | loss 0.85\n",
      "| epoch 514 |  iter 1 / 2 | time 0[s] | loss 0.88\n",
      "| epoch 515 |  iter 1 / 2 | time 0[s] | loss 0.83\n",
      "| epoch 516 |  iter 1 / 2 | time 0[s] | loss 0.98\n",
      "| epoch 517 |  iter 1 / 2 | time 0[s] | loss 0.75\n",
      "| epoch 518 |  iter 1 / 2 | time 0[s] | loss 0.72\n",
      "| epoch 519 |  iter 1 / 2 | time 0[s] | loss 0.97\n",
      "| epoch 520 |  iter 1 / 2 | time 0[s] | loss 0.95\n",
      "| epoch 521 |  iter 1 / 2 | time 0[s] | loss 0.76\n",
      "| epoch 522 |  iter 1 / 2 | time 0[s] | loss 0.82\n",
      "| epoch 523 |  iter 1 / 2 | time 0[s] | loss 0.88\n",
      "| epoch 524 |  iter 1 / 2 | time 0[s] | loss 0.91\n",
      "| epoch 525 |  iter 1 / 2 | time 0[s] | loss 0.85\n",
      "| epoch 526 |  iter 1 / 2 | time 0[s] | loss 0.88\n",
      "| epoch 527 |  iter 1 / 2 | time 0[s] | loss 0.84\n",
      "| epoch 528 |  iter 1 / 2 | time 0[s] | loss 0.62\n",
      "| epoch 529 |  iter 1 / 2 | time 0[s] | loss 1.03\n",
      "| epoch 530 |  iter 1 / 2 | time 0[s] | loss 0.84\n",
      "| epoch 531 |  iter 1 / 2 | time 0[s] | loss 0.64\n",
      "| epoch 532 |  iter 1 / 2 | time 0[s] | loss 0.98\n",
      "| epoch 533 |  iter 1 / 2 | time 0[s] | loss 0.83\n",
      "| epoch 534 |  iter 1 / 2 | time 0[s] | loss 0.81\n",
      "| epoch 535 |  iter 1 / 2 | time 0[s] | loss 0.97\n",
      "| epoch 536 |  iter 1 / 2 | time 0[s] | loss 0.75\n",
      "| epoch 537 |  iter 1 / 2 | time 0[s] | loss 0.84\n",
      "| epoch 538 |  iter 1 / 2 | time 0[s] | loss 0.81\n",
      "| epoch 539 |  iter 1 / 2 | time 0[s] | loss 0.82\n",
      "| epoch 540 |  iter 1 / 2 | time 0[s] | loss 0.88\n",
      "| epoch 541 |  iter 1 / 2 | time 0[s] | loss 0.82\n",
      "| epoch 542 |  iter 1 / 2 | time 0[s] | loss 0.80\n",
      "| epoch 543 |  iter 1 / 2 | time 0[s] | loss 0.86\n",
      "| epoch 544 |  iter 1 / 2 | time 0[s] | loss 0.80\n",
      "| epoch 545 |  iter 1 / 2 | time 0[s] | loss 0.86\n",
      "| epoch 546 |  iter 1 / 2 | time 0[s] | loss 0.90\n",
      "| epoch 547 |  iter 1 / 2 | time 0[s] | loss 0.86\n",
      "| epoch 548 |  iter 1 / 2 | time 0[s] | loss 0.70\n",
      "| epoch 549 |  iter 1 / 2 | time 0[s] | loss 0.74\n",
      "| epoch 550 |  iter 1 / 2 | time 0[s] | loss 0.96\n",
      "| epoch 551 |  iter 1 / 2 | time 0[s] | loss 0.78\n",
      "| epoch 552 |  iter 1 / 2 | time 0[s] | loss 0.83\n",
      "| epoch 553 |  iter 1 / 2 | time 0[s] | loss 0.86\n",
      "| epoch 554 |  iter 1 / 2 | time 0[s] | loss 0.79\n",
      "| epoch 555 |  iter 1 / 2 | time 0[s] | loss 0.87\n",
      "| epoch 556 |  iter 1 / 2 | time 0[s] | loss 0.69\n",
      "| epoch 557 |  iter 1 / 2 | time 0[s] | loss 1.03\n",
      "| epoch 558 |  iter 1 / 2 | time 0[s] | loss 0.82\n",
      "| epoch 559 |  iter 1 / 2 | time 0[s] | loss 0.82\n",
      "| epoch 560 |  iter 1 / 2 | time 0[s] | loss 0.82\n",
      "| epoch 561 |  iter 1 / 2 | time 0[s] | loss 0.71\n",
      "| epoch 562 |  iter 1 / 2 | time 0[s] | loss 0.82\n",
      "| epoch 563 |  iter 1 / 2 | time 0[s] | loss 0.93\n",
      "| epoch 564 |  iter 1 / 2 | time 0[s] | loss 0.71\n",
      "| epoch 565 |  iter 1 / 2 | time 0[s] | loss 0.80\n",
      "| epoch 566 |  iter 1 / 2 | time 0[s] | loss 0.77\n",
      "| epoch 567 |  iter 1 / 2 | time 0[s] | loss 0.78\n",
      "| epoch 568 |  iter 1 / 2 | time 0[s] | loss 0.81\n",
      "| epoch 569 |  iter 1 / 2 | time 0[s] | loss 0.91\n",
      "| epoch 570 |  iter 1 / 2 | time 0[s] | loss 0.85\n",
      "| epoch 571 |  iter 1 / 2 | time 0[s] | loss 0.85\n",
      "| epoch 572 |  iter 1 / 2 | time 0[s] | loss 0.77\n",
      "| epoch 573 |  iter 1 / 2 | time 0[s] | loss 0.78\n",
      "| epoch 574 |  iter 1 / 2 | time 0[s] | loss 0.75\n",
      "| epoch 575 |  iter 1 / 2 | time 0[s] | loss 0.81\n",
      "| epoch 576 |  iter 1 / 2 | time 0[s] | loss 1.00\n",
      "| epoch 577 |  iter 1 / 2 | time 0[s] | loss 0.61\n",
      "| epoch 578 |  iter 1 / 2 | time 0[s] | loss 0.77\n",
      "| epoch 579 |  iter 1 / 2 | time 0[s] | loss 0.98\n",
      "| epoch 580 |  iter 1 / 2 | time 0[s] | loss 0.74\n",
      "| epoch 581 |  iter 1 / 2 | time 0[s] | loss 0.80\n",
      "| epoch 582 |  iter 1 / 2 | time 0[s] | loss 0.91\n",
      "| epoch 583 |  iter 1 / 2 | time 0[s] | loss 0.67\n",
      "| epoch 584 |  iter 1 / 2 | time 0[s] | loss 0.80\n",
      "| epoch 585 |  iter 1 / 2 | time 0[s] | loss 0.83\n",
      "| epoch 586 |  iter 1 / 2 | time 0[s] | loss 0.83\n",
      "| epoch 587 |  iter 1 / 2 | time 0[s] | loss 0.80\n",
      "| epoch 588 |  iter 1 / 2 | time 0[s] | loss 0.80\n",
      "| epoch 589 |  iter 1 / 2 | time 0[s] | loss 0.80\n",
      "| epoch 590 |  iter 1 / 2 | time 0[s] | loss 0.67\n",
      "| epoch 591 |  iter 1 / 2 | time 0[s] | loss 0.83\n",
      "| epoch 592 |  iter 1 / 2 | time 0[s] | loss 0.83\n",
      "| epoch 593 |  iter 1 / 2 | time 0[s] | loss 0.86\n",
      "| epoch 594 |  iter 1 / 2 | time 0[s] | loss 0.86\n",
      "| epoch 595 |  iter 1 / 2 | time 0[s] | loss 0.70\n",
      "| epoch 596 |  iter 1 / 2 | time 0[s] | loss 0.79\n",
      "| epoch 597 |  iter 1 / 2 | time 0[s] | loss 0.79\n",
      "| epoch 598 |  iter 1 / 2 | time 0[s] | loss 0.83\n",
      "| epoch 599 |  iter 1 / 2 | time 0[s] | loss 0.76\n",
      "| epoch 600 |  iter 1 / 2 | time 0[s] | loss 0.92\n",
      "| epoch 601 |  iter 1 / 2 | time 0[s] | loss 0.69\n",
      "| epoch 602 |  iter 1 / 2 | time 0[s] | loss 0.72\n",
      "| epoch 603 |  iter 1 / 2 | time 0[s] | loss 0.88\n",
      "| epoch 604 |  iter 1 / 2 | time 0[s] | loss 0.85\n",
      "| epoch 605 |  iter 1 / 2 | time 0[s] | loss 0.63\n",
      "| epoch 606 |  iter 1 / 2 | time 0[s] | loss 0.82\n",
      "| epoch 607 |  iter 1 / 2 | time 0[s] | loss 0.78\n",
      "| epoch 608 |  iter 1 / 2 | time 0[s] | loss 0.82\n",
      "| epoch 609 |  iter 1 / 2 | time 0[s] | loss 0.72\n",
      "| epoch 610 |  iter 1 / 2 | time 0[s] | loss 0.85\n",
      "| epoch 611 |  iter 1 / 2 | time 0[s] | loss 0.75\n",
      "| epoch 612 |  iter 1 / 2 | time 0[s] | loss 0.75\n",
      "| epoch 613 |  iter 1 / 2 | time 0[s] | loss 0.78\n",
      "| epoch 614 |  iter 1 / 2 | time 0[s] | loss 0.75\n",
      "| epoch 615 |  iter 1 / 2 | time 0[s] | loss 0.78\n",
      "| epoch 616 |  iter 1 / 2 | time 0[s] | loss 0.97\n",
      "| epoch 617 |  iter 1 / 2 | time 0[s] | loss 0.61\n",
      "| epoch 618 |  iter 1 / 2 | time 0[s] | loss 0.72\n",
      "| epoch 619 |  iter 1 / 2 | time 0[s] | loss 0.87\n",
      "| epoch 620 |  iter 1 / 2 | time 0[s] | loss 0.74\n",
      "| epoch 621 |  iter 1 / 2 | time 0[s] | loss 0.75\n",
      "| epoch 622 |  iter 1 / 2 | time 0[s] | loss 0.80\n",
      "| epoch 623 |  iter 1 / 2 | time 0[s] | loss 0.77\n",
      "| epoch 624 |  iter 1 / 2 | time 0[s] | loss 0.77\n",
      "| epoch 625 |  iter 1 / 2 | time 0[s] | loss 0.85\n",
      "| epoch 626 |  iter 1 / 2 | time 0[s] | loss 0.83\n",
      "| epoch 627 |  iter 1 / 2 | time 0[s] | loss 0.64\n",
      "| epoch 628 |  iter 1 / 2 | time 0[s] | loss 0.72\n",
      "| epoch 629 |  iter 1 / 2 | time 0[s] | loss 0.77\n",
      "| epoch 630 |  iter 1 / 2 | time 0[s] | loss 0.82\n",
      "| epoch 631 |  iter 1 / 2 | time 0[s] | loss 0.80\n",
      "| epoch 632 |  iter 1 / 2 | time 0[s] | loss 0.81\n",
      "| epoch 633 |  iter 1 / 2 | time 0[s] | loss 0.86\n",
      "| epoch 634 |  iter 1 / 2 | time 0[s] | loss 0.69\n",
      "| epoch 635 |  iter 1 / 2 | time 0[s] | loss 0.67\n",
      "| epoch 636 |  iter 1 / 2 | time 0[s] | loss 0.76\n",
      "| epoch 637 |  iter 1 / 2 | time 0[s] | loss 0.76\n",
      "| epoch 638 |  iter 1 / 2 | time 0[s] | loss 0.75\n",
      "| epoch 639 |  iter 1 / 2 | time 0[s] | loss 0.76\n",
      "| epoch 640 |  iter 1 / 2 | time 0[s] | loss 0.81\n",
      "| epoch 641 |  iter 1 / 2 | time 0[s] | loss 0.63\n",
      "| epoch 642 |  iter 1 / 2 | time 0[s] | loss 0.93\n",
      "| epoch 643 |  iter 1 / 2 | time 0[s] | loss 0.68\n",
      "| epoch 644 |  iter 1 / 2 | time 0[s] | loss 0.66\n",
      "| epoch 645 |  iter 1 / 2 | time 0[s] | loss 0.95\n",
      "| epoch 646 |  iter 1 / 2 | time 0[s] | loss 0.65\n",
      "| epoch 647 |  iter 1 / 2 | time 0[s] | loss 0.85\n",
      "| epoch 648 |  iter 1 / 2 | time 0[s] | loss 0.85\n",
      "| epoch 649 |  iter 1 / 2 | time 0[s] | loss 0.58\n",
      "| epoch 650 |  iter 1 / 2 | time 0[s] | loss 0.80\n",
      "| epoch 651 |  iter 1 / 2 | time 0[s] | loss 0.79\n",
      "| epoch 652 |  iter 1 / 2 | time 0[s] | loss 0.66\n",
      "| epoch 653 |  iter 1 / 2 | time 0[s] | loss 0.80\n",
      "| epoch 654 |  iter 1 / 2 | time 0[s] | loss 0.71\n",
      "| epoch 655 |  iter 1 / 2 | time 0[s] | loss 0.84\n",
      "| epoch 656 |  iter 1 / 2 | time 0[s] | loss 0.71\n",
      "| epoch 657 |  iter 1 / 2 | time 0[s] | loss 0.66\n",
      "| epoch 658 |  iter 1 / 2 | time 0[s] | loss 0.84\n",
      "| epoch 659 |  iter 1 / 2 | time 0[s] | loss 0.70\n",
      "| epoch 660 |  iter 1 / 2 | time 0[s] | loss 0.78\n",
      "| epoch 661 |  iter 1 / 2 | time 0[s] | loss 0.71\n",
      "| epoch 662 |  iter 1 / 2 | time 0[s] | loss 0.70\n",
      "| epoch 663 |  iter 1 / 2 | time 0[s] | loss 0.82\n",
      "| epoch 664 |  iter 1 / 2 | time 0[s] | loss 0.67\n",
      "| epoch 665 |  iter 1 / 2 | time 0[s] | loss 0.92\n",
      "| epoch 666 |  iter 1 / 2 | time 0[s] | loss 0.52\n",
      "| epoch 667 |  iter 1 / 2 | time 0[s] | loss 0.83\n",
      "| epoch 668 |  iter 1 / 2 | time 0[s] | loss 0.74\n",
      "| epoch 669 |  iter 1 / 2 | time 0[s] | loss 0.87\n",
      "| epoch 670 |  iter 1 / 2 | time 0[s] | loss 0.70\n",
      "| epoch 671 |  iter 1 / 2 | time 0[s] | loss 0.83\n",
      "| epoch 672 |  iter 1 / 2 | time 0[s] | loss 0.46\n",
      "| epoch 673 |  iter 1 / 2 | time 0[s] | loss 0.88\n",
      "| epoch 674 |  iter 1 / 2 | time 0[s] | loss 0.72\n",
      "| epoch 675 |  iter 1 / 2 | time 0[s] | loss 0.75\n",
      "| epoch 676 |  iter 1 / 2 | time 0[s] | loss 0.64\n",
      "| epoch 677 |  iter 1 / 2 | time 0[s] | loss 0.90\n",
      "| epoch 678 |  iter 1 / 2 | time 0[s] | loss 0.70\n",
      "| epoch 679 |  iter 1 / 2 | time 0[s] | loss 0.61\n",
      "| epoch 680 |  iter 1 / 2 | time 0[s] | loss 0.86\n",
      "| epoch 681 |  iter 1 / 2 | time 0[s] | loss 0.73\n",
      "| epoch 682 |  iter 1 / 2 | time 0[s] | loss 0.64\n",
      "| epoch 683 |  iter 1 / 2 | time 0[s] | loss 0.73\n",
      "| epoch 684 |  iter 1 / 2 | time 0[s] | loss 0.82\n",
      "| epoch 685 |  iter 1 / 2 | time 0[s] | loss 0.73\n",
      "| epoch 686 |  iter 1 / 2 | time 0[s] | loss 0.68\n",
      "| epoch 687 |  iter 1 / 2 | time 0[s] | loss 0.79\n",
      "| epoch 688 |  iter 1 / 2 | time 0[s] | loss 0.63\n",
      "| epoch 689 |  iter 1 / 2 | time 0[s] | loss 0.73\n",
      "| epoch 690 |  iter 1 / 2 | time 0[s] | loss 0.82\n",
      "| epoch 691 |  iter 1 / 2 | time 0[s] | loss 0.76\n",
      "| epoch 692 |  iter 1 / 2 | time 0[s] | loss 0.60\n",
      "| epoch 693 |  iter 1 / 2 | time 0[s] | loss 0.69\n",
      "| epoch 694 |  iter 1 / 2 | time 0[s] | loss 0.73\n",
      "| epoch 695 |  iter 1 / 2 | time 0[s] | loss 0.79\n",
      "| epoch 696 |  iter 1 / 2 | time 0[s] | loss 0.68\n",
      "| epoch 697 |  iter 1 / 2 | time 0[s] | loss 0.63\n",
      "| epoch 698 |  iter 1 / 2 | time 0[s] | loss 0.72\n",
      "| epoch 699 |  iter 1 / 2 | time 0[s] | loss 0.91\n",
      "| epoch 700 |  iter 1 / 2 | time 0[s] | loss 0.63\n",
      "| epoch 701 |  iter 1 / 2 | time 0[s] | loss 0.84\n",
      "| epoch 702 |  iter 1 / 2 | time 0[s] | loss 0.63\n",
      "| epoch 703 |  iter 1 / 2 | time 0[s] | loss 0.81\n",
      "| epoch 704 |  iter 1 / 2 | time 0[s] | loss 0.69\n",
      "| epoch 705 |  iter 1 / 2 | time 0[s] | loss 0.74\n",
      "| epoch 706 |  iter 1 / 2 | time 0[s] | loss 0.60\n",
      "| epoch 707 |  iter 1 / 2 | time 0[s] | loss 0.77\n",
      "| epoch 708 |  iter 1 / 2 | time 0[s] | loss 0.56\n",
      "| epoch 709 |  iter 1 / 2 | time 0[s] | loss 0.80\n",
      "| epoch 710 |  iter 1 / 2 | time 0[s] | loss 0.62\n",
      "| epoch 711 |  iter 1 / 2 | time 0[s] | loss 1.00\n",
      "| epoch 712 |  iter 1 / 2 | time 0[s] | loss 0.52\n",
      "| epoch 713 |  iter 1 / 2 | time 0[s] | loss 0.78\n",
      "| epoch 714 |  iter 1 / 2 | time 0[s] | loss 0.66\n",
      "| epoch 715 |  iter 1 / 2 | time 0[s] | loss 0.89\n",
      "| epoch 716 |  iter 1 / 2 | time 0[s] | loss 0.52\n",
      "| epoch 717 |  iter 1 / 2 | time 0[s] | loss 0.81\n",
      "| epoch 718 |  iter 1 / 2 | time 0[s] | loss 0.64\n",
      "| epoch 719 |  iter 1 / 2 | time 0[s] | loss 0.80\n",
      "| epoch 720 |  iter 1 / 2 | time 0[s] | loss 0.68\n",
      "| epoch 721 |  iter 1 / 2 | time 0[s] | loss 0.64\n",
      "| epoch 722 |  iter 1 / 2 | time 0[s] | loss 0.73\n",
      "| epoch 723 |  iter 1 / 2 | time 0[s] | loss 0.74\n",
      "| epoch 724 |  iter 1 / 2 | time 0[s] | loss 0.66\n",
      "| epoch 725 |  iter 1 / 2 | time 0[s] | loss 0.65\n",
      "| epoch 726 |  iter 1 / 2 | time 0[s] | loss 0.70\n",
      "| epoch 727 |  iter 1 / 2 | time 0[s] | loss 0.79\n",
      "| epoch 728 |  iter 1 / 2 | time 0[s] | loss 0.70\n",
      "| epoch 729 |  iter 1 / 2 | time 0[s] | loss 0.59\n",
      "| epoch 730 |  iter 1 / 2 | time 0[s] | loss 0.81\n",
      "| epoch 731 |  iter 1 / 2 | time 0[s] | loss 0.63\n",
      "| epoch 732 |  iter 1 / 2 | time 0[s] | loss 0.75\n",
      "| epoch 733 |  iter 1 / 2 | time 0[s] | loss 0.68\n",
      "| epoch 734 |  iter 1 / 2 | time 0[s] | loss 0.54\n",
      "| epoch 735 |  iter 1 / 2 | time 0[s] | loss 0.86\n",
      "| epoch 736 |  iter 1 / 2 | time 0[s] | loss 0.74\n",
      "| epoch 737 |  iter 1 / 2 | time 0[s] | loss 0.72\n",
      "| epoch 738 |  iter 1 / 2 | time 0[s] | loss 0.64\n",
      "| epoch 739 |  iter 1 / 2 | time 0[s] | loss 0.69\n",
      "| epoch 740 |  iter 1 / 2 | time 0[s] | loss 0.53\n",
      "| epoch 741 |  iter 1 / 2 | time 0[s] | loss 0.78\n",
      "| epoch 742 |  iter 1 / 2 | time 0[s] | loss 0.68\n",
      "| epoch 743 |  iter 1 / 2 | time 0[s] | loss 0.78\n",
      "| epoch 744 |  iter 1 / 2 | time 0[s] | loss 0.64\n",
      "| epoch 745 |  iter 1 / 2 | time 0[s] | loss 0.65\n",
      "| epoch 746 |  iter 1 / 2 | time 0[s] | loss 0.80\n",
      "| epoch 747 |  iter 1 / 2 | time 0[s] | loss 0.51\n",
      "| epoch 748 |  iter 1 / 2 | time 0[s] | loss 0.87\n",
      "| epoch 749 |  iter 1 / 2 | time 0[s] | loss 0.64\n",
      "| epoch 750 |  iter 1 / 2 | time 0[s] | loss 0.78\n",
      "| epoch 751 |  iter 1 / 2 | time 0[s] | loss 0.60\n",
      "| epoch 752 |  iter 1 / 2 | time 0[s] | loss 0.76\n",
      "| epoch 753 |  iter 1 / 2 | time 0[s] | loss 0.57\n",
      "| epoch 754 |  iter 1 / 2 | time 0[s] | loss 0.69\n",
      "| epoch 755 |  iter 1 / 2 | time 0[s] | loss 0.76\n",
      "| epoch 756 |  iter 1 / 2 | time 0[s] | loss 0.61\n",
      "| epoch 757 |  iter 1 / 2 | time 0[s] | loss 0.68\n",
      "| epoch 758 |  iter 1 / 2 | time 0[s] | loss 0.71\n",
      "| epoch 759 |  iter 1 / 2 | time 0[s] | loss 0.77\n",
      "| epoch 760 |  iter 1 / 2 | time 0[s] | loss 0.57\n",
      "| epoch 761 |  iter 1 / 2 | time 0[s] | loss 0.68\n",
      "| epoch 762 |  iter 1 / 2 | time 0[s] | loss 0.67\n",
      "| epoch 763 |  iter 1 / 2 | time 0[s] | loss 0.69\n",
      "| epoch 764 |  iter 1 / 2 | time 0[s] | loss 0.76\n",
      "| epoch 765 |  iter 1 / 2 | time 0[s] | loss 0.81\n",
      "| epoch 766 |  iter 1 / 2 | time 0[s] | loss 0.55\n",
      "| epoch 767 |  iter 1 / 2 | time 0[s] | loss 0.63\n",
      "| epoch 768 |  iter 1 / 2 | time 0[s] | loss 0.65\n",
      "| epoch 769 |  iter 1 / 2 | time 0[s] | loss 0.79\n",
      "| epoch 770 |  iter 1 / 2 | time 0[s] | loss 0.68\n",
      "| epoch 771 |  iter 1 / 2 | time 0[s] | loss 0.76\n",
      "| epoch 772 |  iter 1 / 2 | time 0[s] | loss 0.47\n",
      "| epoch 773 |  iter 1 / 2 | time 0[s] | loss 0.72\n",
      "| epoch 774 |  iter 1 / 2 | time 0[s] | loss 0.63\n",
      "| epoch 775 |  iter 1 / 2 | time 0[s] | loss 0.88\n",
      "| epoch 776 |  iter 1 / 2 | time 0[s] | loss 0.54\n",
      "| epoch 777 |  iter 1 / 2 | time 0[s] | loss 0.71\n",
      "| epoch 778 |  iter 1 / 2 | time 0[s] | loss 0.63\n",
      "| epoch 779 |  iter 1 / 2 | time 0[s] | loss 0.59\n",
      "| epoch 780 |  iter 1 / 2 | time 0[s] | loss 0.71\n",
      "| epoch 781 |  iter 1 / 2 | time 0[s] | loss 0.67\n",
      "| epoch 782 |  iter 1 / 2 | time 0[s] | loss 0.76\n",
      "| epoch 783 |  iter 1 / 2 | time 0[s] | loss 0.62\n",
      "| epoch 784 |  iter 1 / 2 | time 0[s] | loss 0.71\n",
      "| epoch 785 |  iter 1 / 2 | time 0[s] | loss 0.67\n",
      "| epoch 786 |  iter 1 / 2 | time 0[s] | loss 0.53\n",
      "| epoch 787 |  iter 1 / 2 | time 0[s] | loss 0.75\n",
      "| epoch 788 |  iter 1 / 2 | time 0[s] | loss 0.67\n",
      "| epoch 789 |  iter 1 / 2 | time 0[s] | loss 0.58\n",
      "| epoch 790 |  iter 1 / 2 | time 0[s] | loss 0.71\n",
      "| epoch 791 |  iter 1 / 2 | time 0[s] | loss 0.75\n",
      "| epoch 792 |  iter 1 / 2 | time 0[s] | loss 0.53\n",
      "| epoch 793 |  iter 1 / 2 | time 0[s] | loss 0.79\n",
      "| epoch 794 |  iter 1 / 2 | time 0[s] | loss 0.54\n",
      "| epoch 795 |  iter 1 / 2 | time 0[s] | loss 0.66\n",
      "| epoch 796 |  iter 1 / 2 | time 0[s] | loss 0.79\n",
      "| epoch 797 |  iter 1 / 2 | time 0[s] | loss 0.53\n",
      "| epoch 798 |  iter 1 / 2 | time 0[s] | loss 0.79\n",
      "| epoch 799 |  iter 1 / 2 | time 0[s] | loss 0.57\n",
      "| epoch 800 |  iter 1 / 2 | time 0[s] | loss 0.62\n",
      "| epoch 801 |  iter 1 / 2 | time 0[s] | loss 0.65\n",
      "| epoch 802 |  iter 1 / 2 | time 0[s] | loss 0.79\n",
      "| epoch 803 |  iter 1 / 2 | time 0[s] | loss 0.65\n",
      "| epoch 804 |  iter 1 / 2 | time 0[s] | loss 0.53\n",
      "| epoch 805 |  iter 1 / 2 | time 0[s] | loss 0.78\n",
      "| epoch 806 |  iter 1 / 2 | time 0[s] | loss 0.66\n",
      "| epoch 807 |  iter 1 / 2 | time 0[s] | loss 0.65\n",
      "| epoch 808 |  iter 1 / 2 | time 0[s] | loss 0.53\n",
      "| epoch 809 |  iter 1 / 2 | time 0[s] | loss 0.74\n",
      "| epoch 810 |  iter 1 / 2 | time 0[s] | loss 0.69\n",
      "| epoch 811 |  iter 1 / 2 | time 0[s] | loss 0.65\n",
      "| epoch 812 |  iter 1 / 2 | time 0[s] | loss 0.57\n",
      "| epoch 813 |  iter 1 / 2 | time 0[s] | loss 0.69\n",
      "| epoch 814 |  iter 1 / 2 | time 0[s] | loss 0.48\n",
      "| epoch 815 |  iter 1 / 2 | time 0[s] | loss 0.74\n",
      "| epoch 816 |  iter 1 / 2 | time 0[s] | loss 0.78\n",
      "| epoch 817 |  iter 1 / 2 | time 0[s] | loss 0.61\n",
      "| epoch 818 |  iter 1 / 2 | time 0[s] | loss 0.65\n",
      "| epoch 819 |  iter 1 / 2 | time 0[s] | loss 0.60\n",
      "| epoch 820 |  iter 1 / 2 | time 0[s] | loss 0.65\n",
      "| epoch 821 |  iter 1 / 2 | time 0[s] | loss 0.60\n",
      "| epoch 822 |  iter 1 / 2 | time 0[s] | loss 0.69\n",
      "| epoch 823 |  iter 1 / 2 | time 0[s] | loss 0.69\n",
      "| epoch 824 |  iter 1 / 2 | time 0[s] | loss 0.69\n",
      "| epoch 825 |  iter 1 / 2 | time 0[s] | loss 0.64\n",
      "| epoch 826 |  iter 1 / 2 | time 0[s] | loss 0.52\n",
      "| epoch 827 |  iter 1 / 2 | time 0[s] | loss 0.73\n",
      "| epoch 828 |  iter 1 / 2 | time 0[s] | loss 0.56\n",
      "| epoch 829 |  iter 1 / 2 | time 0[s] | loss 0.73\n",
      "| epoch 830 |  iter 1 / 2 | time 0[s] | loss 0.60\n",
      "| epoch 831 |  iter 1 / 2 | time 0[s] | loss 0.68\n",
      "| epoch 832 |  iter 1 / 2 | time 0[s] | loss 0.56\n",
      "| epoch 833 |  iter 1 / 2 | time 0[s] | loss 0.85\n",
      "| epoch 834 |  iter 1 / 2 | time 0[s] | loss 0.55\n",
      "| epoch 835 |  iter 1 / 2 | time 0[s] | loss 0.64\n",
      "| epoch 836 |  iter 1 / 2 | time 0[s] | loss 0.60\n",
      "| epoch 837 |  iter 1 / 2 | time 0[s] | loss 0.59\n",
      "| epoch 838 |  iter 1 / 2 | time 0[s] | loss 0.68\n",
      "| epoch 839 |  iter 1 / 2 | time 0[s] | loss 0.55\n",
      "| epoch 840 |  iter 1 / 2 | time 0[s] | loss 0.64\n",
      "| epoch 841 |  iter 1 / 2 | time 0[s] | loss 0.72\n",
      "| epoch 842 |  iter 1 / 2 | time 0[s] | loss 0.64\n",
      "| epoch 843 |  iter 1 / 2 | time 0[s] | loss 0.63\n",
      "| epoch 844 |  iter 1 / 2 | time 0[s] | loss 0.77\n",
      "| epoch 845 |  iter 1 / 2 | time 0[s] | loss 0.63\n",
      "| epoch 846 |  iter 1 / 2 | time 0[s] | loss 0.55\n",
      "| epoch 847 |  iter 1 / 2 | time 0[s] | loss 0.50\n",
      "| epoch 848 |  iter 1 / 2 | time 0[s] | loss 0.72\n",
      "| epoch 849 |  iter 1 / 2 | time 0[s] | loss 0.67\n",
      "| epoch 850 |  iter 1 / 2 | time 0[s] | loss 0.60\n",
      "| epoch 851 |  iter 1 / 2 | time 0[s] | loss 0.76\n",
      "| epoch 852 |  iter 1 / 2 | time 0[s] | loss 0.46\n",
      "| epoch 853 |  iter 1 / 2 | time 0[s] | loss 0.80\n",
      "| epoch 854 |  iter 1 / 2 | time 0[s] | loss 0.41\n",
      "| epoch 855 |  iter 1 / 2 | time 0[s] | loss 0.72\n",
      "| epoch 856 |  iter 1 / 2 | time 0[s] | loss 0.54\n",
      "| epoch 857 |  iter 1 / 2 | time 0[s] | loss 0.84\n",
      "| epoch 858 |  iter 1 / 2 | time 0[s] | loss 0.54\n",
      "| epoch 859 |  iter 1 / 2 | time 0[s] | loss 0.54\n",
      "| epoch 860 |  iter 1 / 2 | time 0[s] | loss 0.50\n",
      "| epoch 861 |  iter 1 / 2 | time 0[s] | loss 0.83\n",
      "| epoch 862 |  iter 1 / 2 | time 0[s] | loss 0.50\n",
      "| epoch 863 |  iter 1 / 2 | time 0[s] | loss 0.76\n",
      "| epoch 864 |  iter 1 / 2 | time 0[s] | loss 0.53\n",
      "| epoch 865 |  iter 1 / 2 | time 0[s] | loss 0.50\n",
      "| epoch 866 |  iter 1 / 2 | time 0[s] | loss 0.84\n",
      "| epoch 867 |  iter 1 / 2 | time 0[s] | loss 0.49\n",
      "| epoch 868 |  iter 1 / 2 | time 0[s] | loss 0.62\n",
      "| epoch 869 |  iter 1 / 2 | time 0[s] | loss 0.63\n",
      "| epoch 870 |  iter 1 / 2 | time 0[s] | loss 0.65\n",
      "| epoch 871 |  iter 1 / 2 | time 0[s] | loss 0.71\n",
      "| epoch 872 |  iter 1 / 2 | time 0[s] | loss 0.54\n",
      "| epoch 873 |  iter 1 / 2 | time 0[s] | loss 0.57\n",
      "| epoch 874 |  iter 1 / 2 | time 0[s] | loss 0.75\n",
      "| epoch 875 |  iter 1 / 2 | time 0[s] | loss 0.49\n",
      "| epoch 876 |  iter 1 / 2 | time 0[s] | loss 0.69\n",
      "| epoch 877 |  iter 1 / 2 | time 0[s] | loss 0.67\n",
      "| epoch 878 |  iter 1 / 2 | time 0[s] | loss 0.49\n",
      "| epoch 879 |  iter 1 / 2 | time 0[s] | loss 0.69\n",
      "| epoch 880 |  iter 1 / 2 | time 0[s] | loss 0.63\n",
      "| epoch 881 |  iter 1 / 2 | time 0[s] | loss 0.66\n",
      "| epoch 882 |  iter 1 / 2 | time 0[s] | loss 0.57\n",
      "| epoch 883 |  iter 1 / 2 | time 0[s] | loss 0.61\n",
      "| epoch 884 |  iter 1 / 2 | time 0[s] | loss 0.61\n",
      "| epoch 885 |  iter 1 / 2 | time 0[s] | loss 0.65\n",
      "| epoch 886 |  iter 1 / 2 | time 0[s] | loss 0.52\n",
      "| epoch 887 |  iter 1 / 2 | time 0[s] | loss 0.67\n",
      "| epoch 888 |  iter 1 / 2 | time 0[s] | loss 0.61\n",
      "| epoch 889 |  iter 1 / 2 | time 0[s] | loss 0.43\n",
      "| epoch 890 |  iter 1 / 2 | time 0[s] | loss 0.82\n",
      "| epoch 891 |  iter 1 / 2 | time 0[s] | loss 0.58\n",
      "| epoch 892 |  iter 1 / 2 | time 0[s] | loss 0.73\n",
      "| epoch 893 |  iter 1 / 2 | time 0[s] | loss 0.39\n",
      "| epoch 894 |  iter 1 / 2 | time 0[s] | loss 0.74\n",
      "| epoch 895 |  iter 1 / 2 | time 0[s] | loss 0.57\n",
      "| epoch 896 |  iter 1 / 2 | time 0[s] | loss 0.51\n",
      "| epoch 897 |  iter 1 / 2 | time 0[s] | loss 0.62\n",
      "| epoch 898 |  iter 1 / 2 | time 0[s] | loss 0.73\n",
      "| epoch 899 |  iter 1 / 2 | time 0[s] | loss 0.51\n",
      "| epoch 900 |  iter 1 / 2 | time 0[s] | loss 0.70\n",
      "| epoch 901 |  iter 1 / 2 | time 0[s] | loss 0.61\n",
      "| epoch 902 |  iter 1 / 2 | time 0[s] | loss 0.52\n",
      "| epoch 903 |  iter 1 / 2 | time 0[s] | loss 0.67\n",
      "| epoch 904 |  iter 1 / 2 | time 0[s] | loss 0.50\n",
      "| epoch 905 |  iter 1 / 2 | time 0[s] | loss 0.59\n",
      "| epoch 906 |  iter 1 / 2 | time 0[s] | loss 0.82\n",
      "| epoch 907 |  iter 1 / 2 | time 0[s] | loss 0.38\n",
      "| epoch 908 |  iter 1 / 2 | time 0[s] | loss 0.64\n",
      "| epoch 909 |  iter 1 / 2 | time 0[s] | loss 0.69\n",
      "| epoch 910 |  iter 1 / 2 | time 0[s] | loss 0.56\n",
      "| epoch 911 |  iter 1 / 2 | time 0[s] | loss 0.65\n",
      "| epoch 912 |  iter 1 / 2 | time 0[s] | loss 0.60\n",
      "| epoch 913 |  iter 1 / 2 | time 0[s] | loss 0.46\n",
      "| epoch 914 |  iter 1 / 2 | time 0[s] | loss 0.74\n",
      "| epoch 915 |  iter 1 / 2 | time 0[s] | loss 0.46\n",
      "| epoch 916 |  iter 1 / 2 | time 0[s] | loss 0.74\n",
      "| epoch 917 |  iter 1 / 2 | time 0[s] | loss 0.50\n",
      "| epoch 918 |  iter 1 / 2 | time 0[s] | loss 0.60\n",
      "| epoch 919 |  iter 1 / 2 | time 0[s] | loss 0.61\n",
      "| epoch 920 |  iter 1 / 2 | time 0[s] | loss 0.63\n",
      "| epoch 921 |  iter 1 / 2 | time 0[s] | loss 0.63\n",
      "| epoch 922 |  iter 1 / 2 | time 0[s] | loss 0.49\n",
      "| epoch 923 |  iter 1 / 2 | time 0[s] | loss 0.66\n",
      "| epoch 924 |  iter 1 / 2 | time 0[s] | loss 0.53\n",
      "| epoch 925 |  iter 1 / 2 | time 0[s] | loss 0.58\n",
      "| epoch 926 |  iter 1 / 2 | time 0[s] | loss 0.65\n",
      "| epoch 927 |  iter 1 / 2 | time 0[s] | loss 0.68\n",
      "| epoch 928 |  iter 1 / 2 | time 0[s] | loss 0.51\n",
      "| epoch 929 |  iter 1 / 2 | time 0[s] | loss 0.68\n",
      "| epoch 930 |  iter 1 / 2 | time 0[s] | loss 0.59\n",
      "| epoch 931 |  iter 1 / 2 | time 0[s] | loss 0.37\n",
      "| epoch 932 |  iter 1 / 2 | time 0[s] | loss 0.79\n",
      "| epoch 933 |  iter 1 / 2 | time 0[s] | loss 0.57\n",
      "| epoch 934 |  iter 1 / 2 | time 0[s] | loss 0.49\n",
      "| epoch 935 |  iter 1 / 2 | time 0[s] | loss 0.61\n",
      "| epoch 936 |  iter 1 / 2 | time 0[s] | loss 0.67\n",
      "| epoch 937 |  iter 1 / 2 | time 0[s] | loss 0.51\n",
      "| epoch 938 |  iter 1 / 2 | time 0[s] | loss 0.67\n",
      "| epoch 939 |  iter 1 / 2 | time 0[s] | loss 0.59\n",
      "| epoch 940 |  iter 1 / 2 | time 0[s] | loss 0.50\n",
      "| epoch 941 |  iter 1 / 2 | time 0[s] | loss 0.71\n",
      "| epoch 942 |  iter 1 / 2 | time 0[s] | loss 0.45\n",
      "| epoch 943 |  iter 1 / 2 | time 0[s] | loss 0.72\n",
      "| epoch 944 |  iter 1 / 2 | time 0[s] | loss 0.59\n",
      "| epoch 945 |  iter 1 / 2 | time 0[s] | loss 0.55\n",
      "| epoch 946 |  iter 1 / 2 | time 0[s] | loss 0.52\n",
      "| epoch 947 |  iter 1 / 2 | time 0[s] | loss 0.68\n",
      "| epoch 948 |  iter 1 / 2 | time 0[s] | loss 0.50\n",
      "| epoch 949 |  iter 1 / 2 | time 0[s] | loss 0.53\n",
      "| epoch 950 |  iter 1 / 2 | time 0[s] | loss 0.62\n",
      "| epoch 951 |  iter 1 / 2 | time 0[s] | loss 0.58\n",
      "| epoch 952 |  iter 1 / 2 | time 0[s] | loss 0.65\n",
      "| epoch 953 |  iter 1 / 2 | time 0[s] | loss 0.62\n",
      "| epoch 954 |  iter 1 / 2 | time 0[s] | loss 0.44\n",
      "| epoch 955 |  iter 1 / 2 | time 0[s] | loss 0.70\n",
      "| epoch 956 |  iter 1 / 2 | time 0[s] | loss 0.50\n",
      "| epoch 957 |  iter 1 / 2 | time 0[s] | loss 0.54\n",
      "| epoch 958 |  iter 1 / 2 | time 0[s] | loss 0.72\n",
      "| epoch 959 |  iter 1 / 2 | time 0[s] | loss 0.46\n",
      "| epoch 960 |  iter 1 / 2 | time 0[s] | loss 0.70\n",
      "| epoch 961 |  iter 1 / 2 | time 0[s] | loss 0.66\n",
      "| epoch 962 |  iter 1 / 2 | time 0[s] | loss 0.58\n",
      "| epoch 963 |  iter 1 / 2 | time 0[s] | loss 0.58\n",
      "| epoch 964 |  iter 1 / 2 | time 0[s] | loss 0.58\n",
      "| epoch 965 |  iter 1 / 2 | time 0[s] | loss 0.36\n",
      "| epoch 966 |  iter 1 / 2 | time 0[s] | loss 0.61\n",
      "| epoch 967 |  iter 1 / 2 | time 0[s] | loss 0.56\n",
      "| epoch 968 |  iter 1 / 2 | time 0[s] | loss 0.57\n",
      "| epoch 969 |  iter 1 / 2 | time 0[s] | loss 0.69\n",
      "| epoch 970 |  iter 1 / 2 | time 0[s] | loss 0.47\n",
      "| epoch 971 |  iter 1 / 2 | time 0[s] | loss 0.57\n",
      "| epoch 972 |  iter 1 / 2 | time 0[s] | loss 0.67\n",
      "| epoch 973 |  iter 1 / 2 | time 0[s] | loss 0.57\n",
      "| epoch 974 |  iter 1 / 2 | time 0[s] | loss 0.35\n",
      "| epoch 975 |  iter 1 / 2 | time 0[s] | loss 0.77\n",
      "| epoch 976 |  iter 1 / 2 | time 0[s] | loss 0.49\n",
      "| epoch 977 |  iter 1 / 2 | time 0[s] | loss 0.57\n",
      "| epoch 978 |  iter 1 / 2 | time 0[s] | loss 0.67\n",
      "| epoch 979 |  iter 1 / 2 | time 0[s] | loss 0.57\n",
      "| epoch 980 |  iter 1 / 2 | time 0[s] | loss 0.53\n",
      "| epoch 981 |  iter 1 / 2 | time 0[s] | loss 0.60\n",
      "| epoch 982 |  iter 1 / 2 | time 0[s] | loss 0.51\n",
      "| epoch 983 |  iter 1 / 2 | time 0[s] | loss 0.62\n",
      "| epoch 984 |  iter 1 / 2 | time 0[s] | loss 0.51\n",
      "| epoch 985 |  iter 1 / 2 | time 0[s] | loss 0.52\n",
      "| epoch 986 |  iter 1 / 2 | time 0[s] | loss 0.55\n",
      "| epoch 987 |  iter 1 / 2 | time 0[s] | loss 0.58\n",
      "| epoch 988 |  iter 1 / 2 | time 0[s] | loss 0.63\n",
      "| epoch 989 |  iter 1 / 2 | time 0[s] | loss 0.68\n",
      "| epoch 990 |  iter 1 / 2 | time 0[s] | loss 0.26\n",
      "| epoch 991 |  iter 1 / 2 | time 0[s] | loss 0.67\n",
      "| epoch 992 |  iter 1 / 2 | time 0[s] | loss 0.68\n",
      "| epoch 993 |  iter 1 / 2 | time 0[s] | loss 0.56\n",
      "| epoch 994 |  iter 1 / 2 | time 0[s] | loss 0.56\n",
      "| epoch 995 |  iter 1 / 2 | time 0[s] | loss 0.64\n",
      "| epoch 996 |  iter 1 / 2 | time 0[s] | loss 0.36\n",
      "| epoch 997 |  iter 1 / 2 | time 0[s] | loss 0.68\n",
      "| epoch 998 |  iter 1 / 2 | time 0[s] | loss 0.56\n",
      "| epoch 999 |  iter 1 / 2 | time 0[s] | loss 0.48\n",
      "| epoch 1000 |  iter 1 / 2 | time 0[s] | loss 0.72\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "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IiKquTwaAF29ehUVFRWIioqSbI+KikJWVpaic7zyyiuIjY2VBFGDBg3C119/jdTUVLzzzjvYuHEjBg8ejIqKCtlzzJw5E6GhoYavuLg4+98UEREReT0/T1fAEbNmzcKyZcuwYcMG6HQ6w/ZHHnnE8H2HDh3QsWNHNG/eHBs2bED//v1NzjNlyhRMnjzZ8DovL49BEBERUQ3m0QxQREQENBoNsrOzJduzs7MRHR1t8dj33nsPs2bNwu+//46OHTtaLNusWTNERETg5MmTsvu1Wi1CQkIkX0RERFRzeTQACggIQJcuXZCammrYptfrkZqaiqSkJLPHzZ49GzNmzMDatWvRtWtXq9e5cOECrl27hpiYGKfUm4iIiHybx8ekTZ48GZ9//jkWL16MI0eOYPz48SgsLMS4ceMAAKNHj8aUKVMM5d955x1MnToVCxcuRHx8PLKyspCVlYWCggIAQEFBAV566SVs374dZ8+eRWpqKu6//360aNECKSkpHnmPRERE5F083gdo+PDhuHLlCqZNm4asrCx06tQJa9euNXSMzsjIgFpdHad9+umnKC0txd/+9jfJeaZPn47XX38dGo0G+/fvx+LFi5GTk4PY2FgMHDgQM2bMgFardet7IyIiIu/k8XmAvBHnASIiIvI9PjMPEBEREZEnMAAiIiKiWocBEBEREdU6DICIiIio1mEARERERLUOAyAiIiKqdTw+D5A3qpoZgKvCExER+Y6q57aSGX4YAMnIz88HAC6ISkRE5IPy8/MRGhpqsQwnQpSh1+tx6dIlBAcHQ6VSOfXcVSvNnz9/npMsuhDvs3vwPrsH77P78F67h6vusyAIyM/PR2xsrGQVCTnMAMlQq9Vo1KiRS6/BVefdg/fZPXif3YP32X14r93DFffZWuanCjtBExERUa3DAIiIiIhqHQZAbqbVajF9+nSuTO9ivM/uwfvsHrzP7sN77R7ecJ/ZCZqIiIhqHWaAiIiIqNZhAERERES1DgMgIiIiqnUYABEREVGtwwDIjebNm4f4+HjodDokJiZi586dnq6ST5k5cya6deuG4OBgREZGYujQoTh27JikTHFxMSZMmID69eujbt26eOihh5CdnS0pk5GRgSFDhiAoKAiRkZF46aWXUF5e7s634lNmzZoFlUqFSZMmGbbxPjvHxYsX8fe//x3169dHYGAgOnTogF27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JI8ZICKyyYoVK9CoUSO88cYbyMzMRGZmJgDg1KlTGDRoEB566CHs378fy5cvx5YtWzBx4kTJ8e+99x4SEhKwd+9eTJ06FQAQHByMRYsW4fDhw/jwww/x+eefY86cOQCA4cOH44UXXkC7du0M1xs+fLhJvQoLC5GSkoJ69erhr7/+wvfff48//vjD5Prr16/HqVOnsH79eixevBiLFi3CokWLAAC7du3Cs88+izfeeAPHjh3D2rVrceedd5q9F/v370dubi66du1q2Na6dWu89957ePrpp5GRkYELFy7gqaeewjvvvIO2bdvKnqeoqAhlZWUIDw8HAJw5cwZZWVlITk42lAkNDUViYiLS0tIkx3bv3h2bN282W0ciMsPTERgReT9xBkgQKjM5c+bMkZR57LHHhCeffFKybfPmzYJarRZu3rxpOG7o0KFWr/fuu+8KXbp0MbyePn26kJCQYFIOogzQggULhHr16kkyTqtXrxbUarWQlZUlCEJlBqhJkyZCeXm5ocywYcOE4cOHC4IgCD/++KMQEhIi5OXlWa2jIAjCTz/9JGg0GkGv15vsGzJkiNC7d2+hf//+wsCBA2XLVBk/frzQrFkzw33aunWrAEC4dOmSpNywYcOEhx9+WLLt+eefF/r27auovkRUzc/TARgR1Qz79u3D/v378e233xq2CYIAvV6PM2fOoE2bNgAgyZZUWb58OT766COcOnUKBQUFKC8vR0hIiE3XP3LkCBISElCnTh3DtjvuuAN6vR7Hjh1DVFQUAKBdu3bQaDSGMjExMThw4AAAYMCAAWjSpAmaNWuGQYMGYdCgQXjggQcQFBQke82bN29Cq9VCpVKZ7Fu4cCFuu+02qNVqHDp0SLYMAMyaNQvLli3Dhg0boNPpbHrPABAYGIiioiKbjyOq7dgERkROUVBQgH/+859IT083fO3btw8nTpxA8+bNDeXEAQoApKWlYeTIkbj77ruxatUq7N27F6+99prDHaTN8ff3l7xWqVTQ6/UAKpvi9uzZg6VLlyImJgbTpk1DQkICcnJyZM8VERGBoqIi2bru27cPhYWFKCwsNDQTGnvvvfcwa9Ys/P777+jYsaNhe3R0NAAgOztbUj47O9uwr8r169fRoEEDy2+aiEwwACIimwUEBKCiokKy7fbbb8fhw4fRokULk6+AgACz59q2bRuaNGmC1157DV27dkXLli1x7tw5q9cz1qZNG0PQUWXr1q1Qq9Vo1aqV4vfm5+eH5ORkzJ49G/v378fZs2fx559/ypatGpp/+PBhyfbr169j7NixeO211zB27FiMHDkSN2/elJSZPXs2ZsyYgbVr15pkxZo2bYro6GikpqYatuXl5WHHjh1ISkqSlD148CA6d+6s+P0RUSUGQERks/j4eGzatAkXL17E1atXAQCvvPIKtm3bhokTJyI9PR0nTpzAzz//bNIJ2VjLli2RkZGBZcuW4dSpU/joo4/w008/mVzvzJkzSE9Px9WrV1FSUmJynpEjR0Kn02HMmDE4ePAg1q9fj2eeeQajRo0yNH9Zs2rVKnz00UdIT0/HuXPn8PXXX0Ov15sNoBo0aIDbb78dW7ZskWx/6qmnEBcXh3//+9/44IMPUFFRgRdffNGw/5133sHUqVOxcOFCxMfHIysrC1lZWSgoKABQmZWaNGkS3nzzTfzf//0fDhw4gNGjRyM2NhZDhw41nKeoqAi7d+/GwIEDFb0/IhLxdCckIvJ+xp2g09LShI4dOwparVYyDH7nzp3CgAEDhLp16wp16tQROnbsKLz11luG/XKdpwVBEF566SWhfv36Qt26dYXhw4cLc+bMEUJDQw37i4uLhYceekgICwtzyjB4seeee07o06ePIAiVnbb79Okj1KtXTwgMDBQ6duwoLF++3OK9+eSTT4QePXoYXi9evFioU6eOcPz4ccO2HTt2CP7+/sKaNWsM9wFGQ/sBCNOnTzcco9frhalTpwpRUVGCVqsV+vfvLxw7dkxy7SVLlgitWrWyWD8ikqcSBEHwXPhFROTbbt68iVatWmH58uUmzVOu1qNHDzz77LN49NFH3XpdopqATWBERA4IDAzE119/bWgKdJerV6/iwQcfxIgRI9x6XaKaghkgIiIiqnWYASIiIqJahwEQERER1ToMgIiIiKjWYQBEREREtQ4DICIiIqp1GAARERFRrcMAiIiIiGodBkBERERU6zAAIiIiolrn/wFU9Mi/DE7rGgAAAABJRU5ErkJggg=="
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "trainer.fit(contexts, target, max_epoch, batch_size)\n",
    "trainer.plot()"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-05-05T13:34:33.758178900Z",
     "start_time": "2023-05-05T13:34:33.428752Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "you [-1.033895  -1.0787561 -0.9622386 -1.0078626  1.5421131]\n",
      "say [1.1367168  1.1274898  0.75626594 1.1237192  1.336432  ]\n",
      "goodbye [-0.8551626  -0.8439552  -0.95480925 -0.9188032   0.29256207]\n",
      "and [0.52206266 0.63217056 1.9603575  0.5661074  0.97495234]\n",
      "i [-0.8437441  -0.82514894 -0.92169183 -0.92876554  0.29786414]\n",
      "hello [-1.030526  -1.0766166 -0.9753402 -1.0135412  1.570165 ]\n",
      ". [ 1.4094862  1.2910203 -1.6261728  1.326809   1.5401169]\n"
     ]
    }
   ],
   "source": [
    "word_vecs = model.word_vecs\n",
    "for word_id, word in id_to_word.items():\n",
    "    print(word, word_vecs[word_id])"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-05-05T13:34:59.920509300Z",
     "start_time": "2023-05-05T13:34:59.869538500Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [],
   "metadata": {
    "collapsed": false
   }
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
